嵌套多个 while 循环 - CS50 greedy.c 更少

Nesting multiple while loops - CS50 greedy.c less

我是编程新手,很难理解 while 循环如何相互结合使用。

你可以从我的代码中看到我可以让硬币数量增加,但我觉得应该使用 while 循环而不是 do-while 循环来倒计时变化总行按行。

也许我让它变得比要求的更复杂,但是多个 while 循环是计算变化值的最佳方法吗?

非常感谢任何提示或提示!

int main(void)
{
printf("O hai! ");

float change;

do
{
    printf("How much change is owed?\n");
    change = get_float();
}
while (change <= 0);

int n = (change * 100);     // multiply change by 100 to get int in cents(n)

int coin = 0;               // new int to represent amount of coins


coin++;
int quart = n - 25;     // subtract 25c from n

coin++;
int dime = quart - 10;  // subtract 10c from quart

coin++;
int nick = dime - 5;    // and so on

coin++;
int penny = nick - 1;   // and so on

penny = 0;              // and this is only here because I had an unused int (penny)


printf("%i\n", coin);
}

while 循环工作正常。你会想要让它大于 0,而不是像你现在拥有的那样小于或等于,而且,你不需要定义 quarter/dime 等等,你可以使用 if 语句,例如 if (剩下的美分比硬币价值多)比硬币 -= (这是每次遇到时减少的方式)你要减去的价值。尝试进行这些更改,我可以从那里为您提供更多帮助