Задать вопрос
17 ноября, 12:55

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

#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. 17 ноября, 14:52
    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 (a>max) { ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы