Я не уверен, почему мое значение изменения никогда не оценивается во втором цикле, и мой оператор печати не выполняется в конце с выведенными монетами. Когда введен правильный ввод, программа должна преобразовать плавающее число в int и ввести следующий цикл while. Затем в зависимости от значения изменения следует проверить, является ли условие истинным в каждом операторе if, пока условие while не будет ложным.
#include <cs50.h>
#include <stdio.h>
int main(void) {
int coins = 0;
float n;
int change;
do
{
n = get_float("How much do I owe you? \n");
} while (n < 0); // continue prompt while true less than zero
change = n * 100;
while (change > 0)
{
if (change > 25) // change .25 cents
{
coins = coins + 1;
change = change - 25;
}
else if (change > 5 && change <= 10) // change 10 cents
{
coins = coins + 1;
change = change - 10;
}
else if (change > 1 && change <= 5) // change 5 cents
{
coins = coins + 1;
change = change - 5;
}
else // change 1 cents
{
coins = coins + 1;
change = change - 1;
}
return coins;
}
printf("%d\n", coins);
}