Задать вопрос
26 апреля, 14:25

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

#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

+5
Ответы (1)
  1. 26 апреля, 15:32
    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 ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы