【发布时间】:2020-06-22 05:16:43
【问题描述】:
我希望程序为用户提供他们找零所需的最少硬币,但我的循环并不总是提供正确的答案(值 0.41、0.75、...)。我知道“while”循环会是一个更好的解决方案,但是有人可以告诉我这些“for”循环有什么问题吗?谢谢
float change;
do
{
change = get_float("Change owed:$ ");
}
while (change < 0);
int cents = round(change * 100);
int coins = 0;
for (int quarters = cents; quarters >= 25; quarters -= 25)
{
coins++;
}
for (int dimes = cents % 25; dimes >= 10; dimes -= 10)
{
coins++;
}
for (int nickels = cents % 10; nickels >= 5; nickels -= 5)
{
coins++;
}
for (int pennies = cents % 5; pennies >= 1; pennies -= 1)
{
coins++;
}
printf("%i\n", coins);
}
【问题讨论】: