|
发表于 2020-10-12 16:23:14
|
显示全部楼层
- #include <stdio.h>
- #include <stdbool.h>
- int main()
- {
- float op1, op2;
- char ch;
- float result;
- //这是一个标志,用于记录除数是否为0,程序的逻辑是除数为0时,设定 invalid = true ,除数不为0或进行 +-* 运算时 invalid = false
- 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 '/':
- //判断除数是否为0,除数不为0,计算除法
- if (op2 != 0)
- {
- result = op1 / op2;
- break;
- }
- //除数为0,设置标志为true
- else
- {
- invalid = true;
- break;
- }
- }
- //根据标记来判断除数是否为0
- if (invalid)
- {
- printf("除数不能为零!\n");
- }
- else
- {
- printf("结果是:%.2f\n", result);
- }
- return 0;
- }
复制代码 |
|