Задать вопрос
20 мая, 17:36

Цикл вайл язык Си

#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

+1
Ответы (1)
  1. 20 мая, 18:51
    0
    В Вашей программе номер максимального числа подсчитывается от младших разрядов числа к старшим, а вывести нужно номер от старших разрядов к младшим. Поэтому, нужно добавить в программу строку imax = i - imax + 1; перед строкой

    printf ("%d", imax);

    И ещё, так как нужно вывести первую максимальную цифру числа (если их несколько), то нужно изменить строку if (a>max) на строку if (a>=max)
Знаешь ответ?
Не уверен в ответе?
Найди верный ответ на вопрос ✅ «Цикл вайл язык Си #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 ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы