Мой код предназначен для отображения наименьшего количества монет, которое потребуется человеку для определенной суммы денег. Я преобразовал значение в центы, а затем использовал циклы для проверки каждой монеты. Вы можете увидеть printf для переменных, которые я использовал для целей тестирования, чтобы увидеть, где что-то пошло не так. Циклы просто продолжаются вечно и не вычитают значение C столько раз, сколько повторяется цикл. бывший. 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
, если вам нужны точные значения! - person too honest for this site   schedule 06.09.2015