Cimone 发表于 2020-8-3 17:14:12

S1E5课后作业动动手第2题

#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()
{
        printf("小明需要支付%.2f元\n",2*fanqie+kongxincai+youcai);
        printf("小红需要支付%.2f元\n",3*xiqin+0.5*yangcong+5*huanggua);
        printf("小甲鱼需要支付%.2f元\n",10*huanggua+20*bailuobo);
       
        return 0;
}


以上是我写的程序答案,该程序求出小明需支付11.70元。为什么求出来小明的钱数是错误的,但是小红和小甲鱼的钱数是正确的,求各路大神帮忙看一看我的程序错误出在了哪里?

zltzlt 发表于 2020-8-3 17:21:10

本帖最后由 zltzlt 于 2020-8-3 17:23 编辑

因为 C 语言中整数除以整数得到的结果是整数,而浮点数除以整数得到的结果是浮点数。这样即可:

#include <stdio.h>

#define fanqie 3.7 / 2
#define jielan 7.0 / 2    // 修改
#define xiqin 1.3 / 2
#define kongxincai 8 / 2
#define yangcong 2.4 / 2
#define youcai 9.0 / 2    // 修改
#define huanggua 6.3 / 2
#define bailuobo 0.5 / 2

int main()
{
    printf("小明需要支付%.2f元\n", 2 * fanqie + kongxincai + youcai);
    printf("小红需要支付%.2f元\n", 3 * xiqin + 0.5 * yangcong + 5 * huanggua);
    printf("小甲鱼需要支付%.2f元\n", 10 * huanggua + 20 * bailuobo);

    return 0;
}

_荟桐_ 发表于 2020-8-3 17:22:02

因为小明买了油菜,价格9/2,结果是4,
改成#define youcai 9.0/2

Cimone 发表于 2020-8-5 17:46:16

感谢二位的回答!!!
页: [1]
查看完整版本: S1E5课后作业动动手第2题