鱼C论坛

 找回密码
 立即注册
查看: 815|回复: 1

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

[复制链接]
发表于 2023-12-8 17:17:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



运行结果是
dc95f95ae14b74c22f698370b462316.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-9 06:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表