Непонятная ошибка после хорошей компиляции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
 
int main(void)
{
    int k = 100;
    /*do
    {
        printf("Сколько копеек составляет сдача? ");
        scanf("%i",&k);
    }
    while (k<1);*/
    int m = 0;
    do
    {
        if(k>25)
        {
            int k = k-25;
            int m = m++;
        }
    }
    while(k!=0);
    printf("%i\n",m);
}
Не могу понять, что тут не так.

Решение задачи: «Непонятная ошибка после хорошей компиляции»

textual
Листинг программы
#include <stdio.h>
 
int main(void)
{
    int k;
    do
    {
        printf("Сколько копеек составляет сдача? ");
        scanf("%i",&k);
    }
    while (k<1);
    int m = 0;
    do
    {
    if(k>=25)
    {
        do
        {
            k = k-25;
            m++;
            //printf("%i\n",k);
            //printf("%i\n",m);
        }while(k>=25);
    }
    if(k>=10)
    {   
        do
        {
            k = k-10;
            m++;
            //printf("%i\n",k);
            //printf("%i\n",m);
        }while(k>=10);
    }
    if(k>=5)
    {
        do
        {
            k = k-5;
            m++;
            //printf("%i\n",k);
            //printf("%i\n",m);
        }while(k>=5);
    }
    if(k>=1)
    {
        do
        {
            k = k-1;
            m++;
            //printf("%i\n",k);
            //printf("%i\n",m);
        }while(k>0);
    }
    }
    while(k>0);
    printf("Минимальное количество монет, необходимых для выдачи вашей сдачи, составляет %i монет.\n",m);
    printf("Приходите еще!\n");
}

Объяснение кода листинга программы

  1. Ввод числа k с помощью функции scanf(%i,&k).
  2. Использование цикла do-while для повторного запроса ввода, если k меньше 1.
  3. Использование условных операторов if для определения диапазона, в котором находится число k.
  4. Использование вложенных циклов do-while для вычитания из k каждого из возможных значений и увеличения счетчика m.
  5. Проверка, не равен ли k нулю, перед тем как продолжить вычитание.
  6. Вывод значения m с помощью функции printf(%i\n,m).
  7. Вывод сообщения с помощью функции printf(Минимальное количество монет, необходимых для выдачи вашей сдачи, составляет %i монет.\n,m).
  8. Вывод сообщения с помощью функции printf(Приходите еще!\n).

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы