鱼C论坛

 找回密码
 立即注册
查看: 1238|回复: 2

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

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

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

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

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;
}
6e7ea3973f5872db865dd22813cd8b6.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2023-12-9 13:46:45 | 显示全部楼层
if (b = 0)当然会出问题了,打代码小心一些,避免这种低级错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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