本人初学,想用c语言大体编一个计算器,现目前编译如下,机器显示编译没有问题,但运行结果并未按照顺序来,总是出现48.000000,49.000000,想问一下哪里出错了?是哪里逻辑有问题还是?#include <stdio.h>
#include <ctype.h>
int main()
{
int c,flag;
float a,b,result;
printf("欢迎来到小黄鸡会计算的世界\n");
printf("小黄鸡最近学会了加减乘除,你可以来考考它\n");
printf("请输入第一个数字\n");
a=getchar();
printf("%f\n",a);
printf("请输入第二个数字\n");
b=getchar();
printf("%f\n",b);
printf("请选择你所需要的运算,如你要进行加法运算,请输入1;减法运算,请输入2;乘法运算,请输入3;除法运算,请输入4.\n");
flag=getchar();
switch(flag){
case 1: printf("结果是%f\n",result=a+b);
case 2: printf("结果是%f\n",result=a-b);
case 3: printf("结果是%f\n",result=a*b);
case 4: printf("结果是%f\n",result=a/b);
default:;
}
printf("小黄鸡很机智吧!\n");
return 0;
}
3 回答
mrs_empress
TA贡献11条经验 获得超2个赞
include <stdio.h> #include <ctype.h> int main() { int c,flag; float a,b,result; printf("欢迎来到小黄鸡会计算的世界\n"); printf("小黄鸡最近学会了加减乘除,你可以来考考它\n"); printf("请依次输入第一、二个数字,和你所需要的运算符号(且我们规定加减乘除依次为1、2、3、4)\n"); scanf("%f",&a); printf("%f\n",a); scanf("%f",&b); printf("%f\n",b); scanf("%d",&flag); switch(flag){ case 1: printf("结果是%f\n",result=a+b);break; case 2: printf("结果是%f\n",result=a-b);break; case 3: printf("结果是%f\n",result=a*b);break; case 4: printf("结果是%f\n",result=a/b);break; default:; } printf("小黄鸡很机智吧!\n"); return 0; }
已经改成这样了,为什么还不行?
慕斯卡3531659
TA贡献3条经验 获得超0个赞
有 两个问题 getchar 你每次输入一个数据 你还要输入 一个 回车符号 回车符号 会被接受
a=getchar();
getchar();//添加这个就好
你 getchar 获得的是 数值的ascii 码值 0 对应的asc是 48 so 要用getchar的话 你应该 每个获取的值 剪掉48 依旧很麻烦 因为 getchar 似乎只能接受一个字符
- 3 回答
- 0 关注
- 1597 浏览
添加回答
举报
0/150
提交
取消