Мой код предназначен для отображения наименьшего количества монет, которые нужны человеку за определенную сумму денег. Я преобразовал значение в центы, а затем использовал циклы, чтобы проверить каждую монету. Вы можете увидеть printf для переменных, которые я использовал для тестирования, чтобы увидеть, где это происходит. Петли просто продолжаются вечно и не вычитают значение С столько раз, сколько цикл повторяется. ех. c-25
остается на 475 центов, а не уменьшается на 25 каждый раз, когда цикл повторяется (для значения $ 5,00).Почему циклы в моей программе не заканчиваются?
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void)
{
float c=0;
int i=0;
int y=0;
printf("How much change do you owe?\n");
c=GetFloat();
c=c*100;
printf("%f\n", c);
do
{
c-25;
printf("%d\n", c-25);
if (c>25)
{
i++;
printf("%d\n", i);
}
}
while (c>=25);
printf("%d\n", i);
do
{
y=c-10;
if (y>0)
{
i++;
}
}
while (y>10);
if (y<=10)
{
printf("%d\n", i);
}
do
{
y=c-5;
if (y>0)
{
i++;
}
}
while (y>5);
if (y<=5)
{
printf("%d\n", i);
}
do
{
y=c-1;
if (y>0)
{
i++;
}
}
while (y>1);
if (y==0)
{
printf("%d\n", i);
}
}
Примечание: Это для программы "Время перемен" в CS50
** Не используйте 'float', если вам нужны точные значения! ** – Olaf