鱼C论坛

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

C语言课后练习题

[复制链接]
发表于 2024-3-27 17:05:42 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

#define FANQIE   3.7/2
#define JIELAN   7/2
#define XIQIN     1.3/2
#define KONGXINCAI   8/2
#define YANGCONG     2.4/2
#define YOUCAI      9/2
#define HUANGGUA    6.3/2
#define BAILUOBO    0.5/2

int main()
{
        double a,b,c;
       
        a = 2*FANQIE + KONGXINCAI + YOUCAI;
        printf("小明需要支付%.2f元\n", a);
       
        b = 3*XIQIN + 0.5*YANGCONG + 5*HUANGGUA;
        printf("小红需要支付%.2f元\n", b);
       
        c = 10*HUANGGUA + 20*BAILUOBO;
        printf("小甲鱼需要支付%.2f元\n", c);
       
        return 0;
}


C语言课后练习题S1E5
运行结果小明支付那里不对
代码哪里有问题呀
是上面除2的问题吗

代码以及运行后的结果

代码以及运行后的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-27 17:05:56 | 显示全部楼层
是的,代码中定义的菜价都除以了2。这是因为在C语言中,除法运算符/默认执行整数除法。所以当除以2时,结果会被截断为整数。例如,7/2的结果是3,而不是3.5。

解决这个问题的方法是将除法运算符/替换为浮点除法运算符/。修改代码如下:
#include <stdio.h>

#define FANQIE   3.7/2.0
#define JIELAN   7/2.0
#define XIQIN     1.3/2.0
#define KONGXINCAI   8/2.0
#define YANGCONG     2.4/2.0
#define YOUCAI      9/2.0
#define HUANGGUA    6.3/2.0
#define BAILUOBO    0.5/2.0

int main()
{
        double a,b,c;
        
        a = 2*FANQIE + KONGXINCAI + YOUCAI;
        printf("小明需要支付%.2f元\n", a);
        
        b = 3*XIQIN + 0.5*YANGCONG + 5*HUANGGUA;
        printf("小红需要支付%.2f元\n", b);
        
        c = 10*HUANGGUA + 20*BAILUOBO;
        printf("小甲鱼需要支付%.2f元\n", c);
        
        return 0; 
}

现在重新运行程序,小明支付的金额应该是正确的了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-1 10:35:26 | 显示全部楼层
本帖最后由 jackz007 于 2024-4-1 10:40 编辑

    此两句有误:
#define JIELAN     7/2     /* 问题,整数除法,结果是 3,而非 3.5 */
#define YOUCAI     9/2     /* 问题,整数除法,结果是 4,而非 4.5 */
    如果被除数和除数都是整型数,那么,就是整数除法,商也是整型数,小数部分会被直接忽略。
    所以,这两句必须改为:
#define JIELAN     7.0/2
#define YOUCAI     9.0/2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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