C _cashier中的贪婪算法

时间:2020-08-21 15:31:12

标签: c cs50 greedy

我目前正在使用哈佛大学的CS50-CS简介,并且我以前没有编码经验。因此,我在分配作业上遇到了困难。

我的代码的主要目的是计算用于给定现金量的最小硬币数量(25、10、5和1)。此外,我必须将美元转换为美分。这是我的代码:

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

int main (void)
{

int change = 0;

 float dollars = get_float("Change: ");
 int cents = round( dollars * 100);  

while ( 0 > dollars ) 
; 
   
{
    if ( cents >= 25)
    {
        cents = cents - 25;
        change++;
    }
    else if ( cents >= 10)
    {
        cents = cents - 10;
        change ++;
    }
    else if ( cents >= 5)
    {
        cents = cents - 5;
        change++;
    }
    else if ( cents >= 1)
    {
        cents = cents - 1;
        change++;
    }
    printf("%i\n" , change);
}
}

不幸的是,ı找不到错误所在。当我键入“ 5”时,它给我数字“ 1”。但是,在ı键入0.25时,它也给我结果“ 1”。有人可以帮忙吗?

0 个答案:

没有答案