私はちょうどcs50でCプログラミングを始めました。CS50グリーディアルゴリズム
私は貪欲なアルゴリズムに関して問題を設定しようとしましたが、バグを見つけられないようです。私のコードは以下の通りです。
#include <cs50.h>
#include <stdio.h>
#include <math.h>
int main (void)
{
int count = 0;
printf("how much is the change?: ");
float change = get_float();
while(change < 0)
{
printf("change is to be more than 0");
change = get_float();
}
int amount = lroundf(change*100);
while(amount > 0)
{
if ((amount-25) >= 25)
{
amount = amount - 25;
count++;
}
else if ((amount-10) >= 10)
{
amount = amount - 10;
count++;
}
else if ((amount-5) >= 5)
{
amount = amount -5;
count++;
}
else if((amount-1) >= 1)
{
amount = amount -1;
count ++;
break;
}
else
{
printf("you have no change \n");
}
}
printf("your number of coins is %i\n", count);
}
変更を1と入力すると、8個のコインが返されます。バグがどこにあるのかわからない。誰でも助けてくれますか?
[cs50.se]をチェックしましたか? –
'> = 25' - >'> = 0'などとなります。または単に '(amount-25)> = 25' - >' amount> = 25' – BLUEPIXY