цикл вайл язык Си
#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
Ответы на вопрос
Ответил srzontmp
1
В Вашей программе номер максимального числа подсчитывается от младших разрядов числа к старшим, а вывести нужно номер от старших разрядов к младшим. Поэтому, нужно добавить в программу строку imax = i - imax + 1; перед строкой
printf ("%d", imax);
И ещё, так как нужно вывести первую максимальную цифру числа (если их несколько), то нужно изменить строку if (a>max) на строку if (a>=max)
printf ("%d", imax);
И ещё, так как нужно вывести первую максимальную цифру числа (если их несколько), то нужно изменить строку if (a>max) на строку if (a>=max)
srzontmp:
Ответ изменен.
Новые вопросы