首页 > 解决方案 > CS50 Pset 1 现金发行

问题描述

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

#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);
    
}

标签: ccs50

解决方案


它挂在这里

while (cents >= 25)
;

语句仅在它是 do-while 循环的一部分时才while以分号终止。;while循环挂起是因为centsnever 的值发生变化(或者至少有一个循环挂起,具体取决于输入的数量)。从 while中删除;,看看会发生什么。


推荐阅读