|
8鱼币
问题描述:我看了小甲鱼用了布尔运算的那个四则运算计算器,他那个我能理解。然后我就想试试自己写一个不用布尔的,我也不知道理论上可不可行,然后还想添加一个输入加减乘除符号以外的运算符会有提示的功能。
然后我就按现在的理解写了下面的代码。。。。我输入运算式之后计算结果是0。求大神指点一下错误在哪,最好把运行原理也说一下 小甲鱼和我写的代码,我都会贴在下面。
这个是小甲鱼的
- #include <stdio.h>
- #include <stdbool.h>
- int main()
- {
- float op1, op2;
- char ch;
- float result;
- bool invalid = false;
- printf("请输入式子:");
- scanf("%f %c %f", &op1, &ch, &op2);
- switch (ch)
- {
- case '-': op2 = -op2; // no break
- case '+': result = op1 + op2; break;
- case '*': result = op1 * op2; break;
- case '/':
- if (op2 != 0)
- {
- result = op1 / op2;
- break;
- }
- else
- {
- invalid = true;
- break;
- }
- }
- if (invalid)
- {
- printf("除数不能为零!\n");
- }
- else
- {
- printf("结果是:%.2f\n", result);
- }
- return 0;
- }
复制代码
这个是我的
- #include<stdio.h>
- int main()
- {
- float a,b,result;
- char ch;
- printf("请输入运算式:");
- scanf("%d %c %d",&a,&ch,&b);
-
- switch(ch)
- {
- case ('-'):b=-b; //no break
- case ('+'):result=a+b;break;
- case ('*'):result=a*b;break;
- case ('/'):
- if(b !=0)
- {
- result=a/b;break;
- }
- else
- {
- printf("除数不能为0");break;
- }
- default: printf("请输入有效的运算式"); break;
- }
- printf("结果为%f\n",result);
-
- return 0;
- }
复制代码
|
评分
-
查看全部评分
|