2016-03-06 51 views
-1

我想寫一個C程序來輸入25個硬幣,50個派,1個盧比和2個盧比的硬幣數量,並以盧比計算總金額。這是我的代碼。我沒有得到正確的結果。例如,對於25枚25枚硬幣,我應該得到1.25盧比。但是我得到1.00盧比。我是很新的C.請註明我的錯誤簡單的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

把'4'改成'4.'和把'2'改成'2'。 – alk

+0

雖然C++,相同的問題,所以可能是一個重複http://stackoverflow.com/q/7571326/694576 – alk

回答

4

的問題是在這條線:

total=paise25/4 + paise50/2 + rs1 + 2*rs2; 

當您通過另一個整數除以整數 - 你會得到一個整數。如果你想獲得一個浮點值 - 你應該明確地表達這個意圖。例如:

total=paise25/4.0 + paise50/2.0 + rs1 + 2*rs2; 

請注意我添加的.0部件 - 它們會產生差異。

+1

追加'.'就足夠了,不需要額外的'0'。 – alk

+1

的確如此,但在我看來,對於新手來說可能有點混亂。如果通過新手的眼睛來比較4.到4.0--它們從第一次開始可能並不明顯,它們是相同的。我真的懷疑,有人在學校的數學課上不知道4.0與4相同。 –

3

當你把2 integers,小數點被截斷。

E.g 5/4 = 1整數。

這樣:

total = ((double)paise25)/4 + ((double)paise50)/2 + rs1 + 2*rs2;