我正在尝试编写一个C程序来输入25 paise,50 paise,1 rupee和2 rupees的硬币数量,并以卢比计算总金额。这是我的代码。我没有得到正确的结果。
例如对于5个25个硬币的硬币,我应该得到1.25卢比。但是我得到了1.00卢比。我是C的新手。请说明我的错误
#include <stdio.h>
//Q 7d 2011 7th paper Honours 2008 syllabus
int main()
{
int paise25, paise50, rs1, rs2;
double total;
printf("\n Number of coins of:\n\n");
printf(" 25 paise = ");
scanf("%d",&paise25);
printf(" 50 paise = ");
scanf("%d",&paise50);
printf(" 1 rupee = ");
scanf("%d",&rs1);
printf(" 2 rupee = ");
scanf("%d",&rs2);
total=paise25/4 + paise50/2 + rs1 + 2*rs2;
//if(stat<40 || chemistry<40 || physics<40 || math<40 || c<40)
printf("\n Total amount in rupees: Rs %.02f\n",total);
return 0;
}
答案 0 :(得分:4)
问题出在这一行:
total=paise25/4 + paise50/2 + rs1 + 2*rs2;
当您将整数除以另一个整数时 - 您将得到一个整数。如果要获得浮点值,则应明确表达此意图。例如:
total=paise25/4.0 + paise50/2.0 + rs1 + 2*rs2;
请注意我添加的.0部分 - 它们会有所不同。
答案 1 :(得分:3)
除以2 integers
时,小数点会被截断。
E.g 5/4 = 1
表示整数。
因此:
total = ((double)paise25)/4 + ((double)paise50)/2 + rs1 + 2*rs2;