Непонятная ошибка после хорошей компиляции - 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"); }
Объяснение кода листинга программы
- Ввод числа
k
с помощью функцииscanf(
%i,&k)
. - Использование цикла
do-while
для повторного запроса ввода, еслиk
меньше 1. - Использование условных операторов
if
для определения диапазона, в котором находится числоk
. - Использование вложенных циклов
do-while
для вычитания изk
каждого из возможных значений и увеличения счетчикаm
. - Проверка, не равен ли
k
нулю, перед тем как продолжить вычитание. - Вывод значения
m
с помощью функцииprintf(
%i\n,m)
. - Вывод сообщения с помощью функции
printf(
Минимальное количество монет, необходимых для выдачи вашей сдачи, составляет %i монет.\n,m)
. - Вывод сообщения с помощью функции
printf(
Приходите еще!\n)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д