#include <cs50.h>
#include <stdio.h>
int main(void) {
printf("Enter your change: ");
int pennies = 0, nickels = 0, dimes = 0, quarters = 0;
float change = GetFloat();
while (change > 0) {
if (change >= 0.25) {
quarters++;
change -= 0.25;
}
else if (change >= 0.10) {
dimes++;
change -= 0.10;
}
else if (change >= 0.05) {
nickels++;
change -= 0.05;
}
else if (change >=0.01) {
pennies++;
change -= 0.01;
}
// force break
else {
printf("%1.2f - Num. of change left\n", change);
break;
}
}
printf("Quarters: %d\n", quarters);
printf("Dimes: %d\n", dimes);
printf("Nickels: %d\n", nickels);
printf("Pennies: %d\n", pennies);
return 0;
}
你好,我目前是C的新手,我正在哈佛大學的CS50班上線。 「更改」變量似乎降低到0.00而不停止while循環。這迫使我在最後輸入「break」。我的代碼有什麼問題?C while-loop not stopping
這是來自問題集1的方式。
認真地說,'浮動'來計算*積分*分數?!?! –
http://floating-point-gui.de/ –
感謝您提供指向您參考的信息的鏈接,例如http://d2o9nyf4hwsci4.cloudfront.net/2012/fall/psets/1/pset1.pdf。注意腳註9本文檔中:「對於\t 例如,\t 0.01 \t 不能\t 是\t 代表\t 正是\t 作爲\t 一個\t 浮動」 –