Tipaniktuta
05.09.2022 09:41

Цикл вайл язык си #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

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