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

mihscka0605 mihscka0605    2   17.09.2019 19:50    0

Ответы
alinag13052005 alinag13052005  10.09.2020 10:55
В Вашей программе номер максимального числа подсчитывается  от младших разрядов числа к старшим, а вывести нужно номер от старших разрядов к младшим.  Поэтому, нужно добавить в программу строку   imax = i - imax + 1;   перед строкой
 printf ("%d", imax);
И ещё, так как нужно вывести первую максимальную цифру числа (если их несколько), то нужно изменить строку   if (a>max)   на  строку   if (a>=max)
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика