Я только начал программировать на 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 монет. Не могу найти где баг. Может кто-нибудь помочь мне?
>= 25
--›>= 0
и так далее. или просто(amount-25) >= 25
--›amount >= 25
- person BLUEPIXY   schedule 01.02.2017