В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
Markos14
Markos14
31.03.2020 07:57 •  Информатика

Цикл вайл язык си #include main() { int n,a, max, i, imax; scanf("%d", & n); max=0; i=0; while (n> 0) { i++; a=n%10; n=n/10; if (a> max) { max=a; imax=i; }} printf ("%d", imax); } это моя программа , где ошибка? это дано натуральное число n (n< =10 в 9 степени). определить порядковый номер его максимальной цифры, считая от начала числа (если таких цифр несколько, то вывести номер первой встретившейся) пример входных и выходных данных № теста входные данные выходные данные 1 45545 2 2 100 1

Ответ:
Aru212
Aru212
10.09.2020 10:55
В Вашей программе номер максимального числа подсчитывается  от младших разрядов числа к старшим, а вывести нужно номер от старших разрядов к младшим.  Поэтому, нужно добавить в программу строку   imax = i - imax + 1;   перед строкой
 printf ("%d", imax);
И ещё, так как нужно вывести первую максимальную цифру числа (если их несколько), то нужно изменить строку   if (a>max)   на  строку   if (a>=max)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?