wangzijia 发表于 2023-12-8 17:30:10

这段代码要进行四则运算,但是除法部分所得结果不正确,请问代码哪里有问题

#include <stdio.h>
int main()
{
        float a,b;//两个操作数
        char i;//运算符
        printf("请输入式子:");
        scanf("%f %c %f",&a,&i,&b);
        if(i=='+'){
                printf("结果是:%.2f",a+b);
        }
        else if(i=='-'){
                printf("结果是:%.2f",a-b);
        }
        else if(i=='*'){
                printf("结果是:%.2f",a*b);
        }
        else if(i=='/'){
                if(b=0){
                        printf("很遗憾,除数不能为零!");
                }
                else{
                        printf("%.2f",a/b);
                }
        }
        return 0;
}

FishC 发表于 2023-12-8 17:31:00

问题出在if语句判断除数是否为零的地方。在判断条件中使用了赋值运算符"="而不是相等运算符"==",导致判断始终为真。正确的代码如下:

#include <stdio.h>

int main()
{
    float a, b;// 两个操作数
    char i;      // 运算符
    printf("请输入式子:");
    scanf("%f %c %f", &a, &i, &b);
   
    if (i == '+') {
      printf("结果是:%.2f", a + b);
    }
    else if (i == '-') {
      printf("结果是:%.2f", a - b);
    }
    else if (i == '*') {
      printf("结果是:%.2f", a * b);
    }
    else if (i == '/') {
      if (b == 0) {   // 注意这里使用了相等运算符"=="
            printf("很遗憾,除数不能为零!");
      }
      else {
            printf("%.2f", a / b);
      }
    }
   
    return 0;
}

这样修改后,再输入除法运算时,就能够正确判断除数是否为零并给出相应的提示。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

yinda_peng 发表于 2023-12-9 13:46:45

if (b = 0)当然会出问题了,打代码小心一些,避免这种低级错误
页: [1]
查看完整版本: 这段代码要进行四则运算,但是除法部分所得结果不正确,请问代码哪里有问题