z8733537 发表于 2018-9-11 15:13:08

简单的四则运算问题

#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;
}



如上是代码,case'-':op2 = -op2;//no break 为什么是op2 = -op2,求解

BngThea 发表于 2018-9-11 15:15:07

因为没用break,会继续执行op1+op2,这里将op2反号即可

z8733537 发表于 2018-9-11 15:18:33

BngThea 发表于 2018-9-11 15:15
因为没用break,会继续执行op1+op2,这里将op2反号即可

懂了, 谢谢。
页: [1]
查看完整版本: 简单的四则运算问题