鱼C论坛

 找回密码
 立即注册
查看: 1605|回复: 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
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-12-8 17:31:00 | 显示全部楼层
问题出在if语句判断除数是否为零的地方。在判断条件中使用了赋值运算符"="而不是相等运算符"==",导致判断始终为真。正确的代码如下:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     float a, b;  // 两个操作数
  5.     char i;      // 运算符
  6.     printf("请输入式子:");
  7.     scanf("%f %c %f", &a, &i, &b);
  8.    
  9.     if (i == '+') {
  10.         printf("结果是:%.2f", a + b);
  11.     }
  12.     else if (i == '-') {
  13.         printf("结果是:%.2f", a - b);
  14.     }
  15.     else if (i == '*') {
  16.         printf("结果是:%.2f", a * b);
  17.     }
  18.     else if (i == '/') {
  19.         if (b == 0) {     // 注意这里使用了相等运算符"=="
  20.             printf("很遗憾,除数不能为零!");
  21.         }
  22.         else {
  23.             printf("%.2f", a / b);
  24.         }
  25.     }
  26.    
  27.     return 0;
  28. }
复制代码

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 21:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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