一品带刀护卫 发表于 2018-7-20 17:21:56

小甲鱼写的一个计算器程序好像不太对

在带你学C带你飞s1e12中的课后作业小甲鱼给了一个简易计算器的代码

#include <stdio.h>

int main()
{
      int op1, op2;
      char ch;
      float result;

      printf("请输入式子:");
      scanf("%d %c %d", &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 = (float)op1 / op2;
                              break;
                        }
                        else
                        {
                              printf("除数不能为零!\n");
                              break;
                        }
      }
      printf("结果是:%.2f\n", result);

      return 0;
}
我运行了以下,这个程序最后可以 识别除数为0 的情况,但是还是运行printf("结果是:%.2f\n", result);
我的问题是:该怎么做让它在   
                        else
                        {
                              printf("除数不能为零!\n");
                              break;
                        }

这里就直接终止程序

JCSY 发表于 2018-7-20 18:03:50

else
                        {
                              printf("除数不能为零!\n");
                               break;
                        }
将break;改为return 0;
这样当除数为零时直接return 0,跳出程序,后面都不执行

向上的蜗牛 发表于 2018-7-25 13:42:35

加个变量和if就行了吧{:10_254:}

weizhongyang 发表于 2018-7-26 17:42:06

else
                        {
                              printf("除数不能为零!\n");
                               exit(1);
                        }
除数为0的时候,直接退出程序就可以了。

我爱鱼C! 发表于 2018-7-30 14:30:00

最后可以这样写:
if (op2 != 0)
{
    printf("结果:***",***);
}
页: [1]
查看完整版本: 小甲鱼写的一个计算器程序好像不太对