CS50 Pset 1 现金发行

CS50 Pset 1 Cash Issue

我是全新的,只是想让这个基本代码(不是最好的代码)工作。当我 运行 它时,它只是给出一个空白答案。

#include <stdio.h>
#include <cs50.h>
#include <math.h>

int main(void)
{
    float dollars;
    do
    {
        dollars = get_float("Change owed: ");
    } 
    while (dollars <= 0);
        
    int cents = round(dollars * 100);
    int coins = 0;

    while (cents >= 25)
    ;
         {
           cents = cents - 25;
           coins ++;
        }

        while (cents >= 10)
        ;
        {
            cents = cents - 10;
            coins ++;
        }

        while (cents >= 5)
        ;
        {
            cents = cents - 5;
            coins ++;
        }
        while (cents >= 1)
        ;
        {
            cents = cents - 1;
            coins ++;
    }
       printf("I have %i coin(s)\n)", coins);
    
}

挂在这里

while (cents >= 25)
;

A while 语句仅在 semi-colon ; 是 do-while 循环的一部分时才终止。 while 循环挂起,因为 cents 的值永远不会改变(或者至少有一个循环挂起,具体取决于输入的数量)。从 whiles 中删除 ;,看看会发生什么。