Ich habe gerade C-Programmierung mit CS50 gestartet.CS50 Greedy-Algorithmus
Ich habe versucht, das Problem über den Greedy-Algorithmus zu tun, aber kann nicht scheinen, den Fehler zu finden. Mein Code ist unten.
#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);
}
Wenn ich meine Änderung als 1 eingib, bekomme ich 8 Münzen zurück. Kann nicht finden, wo der Fehler ist. Kann mir jemand helfen?
Haben Sie [cs50.se] überprüft? –
'> = 25' ->'> = 0' und so weiter. oder einfach '(Betrag-25)> = 25' ->' Betrag> = 25' – BLUEPIXY