简单的C程序,从总硬币数中查找总卢比数。

时间:2016-03-06 11:17:53

标签: c

我正在尝试编写一个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;
}

2 个答案:

答案 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;