wangzijia 发表于 2023-12-8 17:17:15

想问一下这段四则运算的代码哪里出错了,为什么不能得到正确的结果

#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:18:04

这段代码有几处错误:

1. 头文件引用错误。应该使用`#include <stdio.h>`引入标准输入输出的头文件。

2. `if`和`else if`中的判断条件语句错误。在C语言中,判断相等的操作符是`==`而不是`=`。所以应该修改为`if(i == '+')`、`else if(i == '-')`等等。

3. `scanf`函数中的格式化字符串错误。`%f`用于读取浮点数,而`%c`用于读取字符。所以应该修改为`scanf("%f %c %f",&a,&i,&b);`

4. `if`和`else if`中的赋值语句错误。在C语言中,赋值操作符是`=`,而不是`==`。所以应该修改为`if(b == 0)`。

修改后的代码如下:

#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 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 想问一下这段四则运算的代码哪里出错了,为什么不能得到正确的结果