|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- float a, b;
- char ch;
-
- printf("请输入式子:");
- scanf("%f%c%f", &a, &ch, &b);
-
- if (b == 0 && ch == '/')
- {
- printf("很遗憾,除数不能为零!");
- }
- else
-
- switch (ch)
- {
- case '+':printf("结果是:%.2f",a + b);break;
- case '-':printf("结果是:%.2f",a - b);break;
- case '*':printf("结果是:%.2f",a * b);break;
- case '/':printf("结果是:%.2f",a / b);break;
- }
-
- return 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;
- }
复制代码 问题1 : 请问我这种写法有什么弊端(小甲鱼写的,有没学过的,看不太明白)
问题2:1 / 8 = 0.13 除法运算输出结果为什么会四舍五入。不是应该直接丢弃两位以后的小数吗,是不是设置问题?(用小甲鱼的代码也是0.13,而课后作业的结果是0.12)
问题3:试着输入错误的式子,看看会出现什么样的结果,打印出的结果不理解。
加法:2 ++ 4 =6.00 三个加号以后,结果是2.00,即输入的a?;
减法:2 - - 4 =6.00 这里的两个减号进行了加法运算? 另外三个减号以后,结果是2.00,也是输入的a?;
乘法:2 ** 4 = 0.00
除法:2 // 4 : 家里电脑打印的结果是 #1.J(好像是这个,记不太清楚了), 小甲鱼的代码的结果是:除数不能为零!
另一台电脑打印结果是
这两个结果是怎么来的?
谢谢!!
|
|