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: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;
} 因为小明买了油菜,价格9/2,结果是4,
改成#define youcai 9.0/2 感谢二位的回答!!!
页:
[1]