-4
當輸入4.2時,無法計算出我的代碼中的錯誤,因爲更改將是420,而是出現爲419.我的代碼中出現了什麼問題?爲什麼100 * 4.2以419而不是420出來?
#include<stdio.h>
#include<cs50.h>
int evaluate(int change){
int quarter,dime,nickel,penny;
int coins = 0;
quarter = change/25;
change = change%25;
printf("quarters:%d\n" ,quarter);
printf("change left: %d\n",change);
dime = change/10;
change = change%10;
printf("dimes:%d\n" ,dime);
printf("change left: %d\n",change);
nickel = change/5;
change = change%5;
printf("nickels:%d\n" ,nickel);
printf("change left: %d\n",change);
penny = change;
coins = quarter+dime+nickel+penny;
printf("pennies:%d\n" ,penny);
printf("change left: %d\n",change);
return coins;
}
int main()
{
printf("How much:");
float input = GetFloat();
int coin = 0;
while(true)
{
if(input>0)
{
int change = (100*input);
printf("change: %d\n",change);
coin = evaluate(change);
printf("%d\n",coin);
return 0;
}
else
{
printf("are you serious? retry:");
input = GetFloat();
} }
}
該方案是評估收銀員必須給客戶的硬幣最少數量。問題是,在獲得輸入4.2時,輸出出錯了;也是change=100*input
出來是419輸入是4.2。請幫我弄清楚問題。
Code on left side and output on right.
_尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證的示例._ –
而不是發佈鏈接到圖像,請在此處發佈您的代碼。 – Yousaf
將您的代碼發佈爲代碼,而不是圖片。你想得到幫助的人不會浪費時間回答這個問題。 –