|
发表于 2019-10-10 19:01:26
|
显示全部楼层
12课显示 0.0 是 result 的初始值,不是强行计算的结果。
个人感觉没问题。
如果希望结果严谨的显示出来,可以这么做:
- #include <stdio.h>
- #include <stdbool.h>
- int main()
- {
- int op1, op2;
- char ch;
- float result;
- bool invalid = false;
- printf("请输入式子:");
- scanf("%d %c %d", &op1, &ch, &op2);
- switch (ch)
- {
- case '-': op2 = -op2; // no break
- case '+': result = (float)op1 + op2; break;
- case '*': result = (float)op1 * op2; break;
- case '/':
- if (op2 != 0)
- {
- result = (float)op1 / op2;
- break;
- }
- else
- {
- invalid = true;
- break;
- }
- }
- if (invalid)
- {
- printf("除数不能为零!\n");
- }
- else
- {
- printf("结果是:%.2f\n", result);
- }
- return 0;
- }
复制代码 |
|