Что я не так делаю?паскальпоиск двух максимальных чисел
program ee;
const N = 5;
var
a : array [1..5]of integer;
iMax,max, iiMa,ma ,i : integer;
begin
for i:= 1 to N do begin
read (a[i]);
end;
write (' числа ', a );
iMax := a[1];// присваиваем для начального сравнения
for i := 1 to N do
if a[i] > iMax then//сравниваем 5 чисел и берём наибольшее
begin
iMax := a[i];//число
max := i;//на каком месте
end;
write (' первое максимальное значение ', iMax,' ',max );
iiMa := a[1];//присваиваем для начального сравнения
ma := 1;//
for i := 1 to N do//
if (iiMa < a[i])and(ma < max)then// ищем второе наибольшее число
begin
iiMa := a[i];//
ma := i//
end;
write (' второе максимальное значение ', iiMa,' ', ma);
end.

21 Апр 2020 в 19:48
177 +1
1
Ответы
1

Исправленный код:

program ee;
const
N = 5;
var
a : array [1..5] of integer;
iMax, max, iiMax, max2, i : integer;
begin
for i := 1 to N do
begin
read(a[i]);
end;
iMax := a[1];
max := 1;
for i := 2 to N do
begin
if a[i] > iMax then
begin
iMax := a[i];
max := i;
end;
end;
write('Первое максимальное значение: ', iMax, ' на позиции ', max);
iiMax := 0;
max2 := 0;
for i := 1 to N do
begin
if (a[i] > iiMax) and (i <> max) then
begin
iiMax := a[i];
max2 := i;
end;
end;
write('Второе максимальное значение: ', iiMax, ' на позиции ', max2);
end.

В этом исправленном коде были внесены следующие изменения:

В цикле сравнения наибольшего числа был добавлен проверка, что текущий индекс не равен индексу первого максимального числа.Переменные iiMax и max2 были правильно инициализированы перед циклом поиска второго наибольшего числа.Исправлены ошибки в условиях проверки наибольшего числа для второго максимального значения.Добавлены сообщения о позициях найденных максимальных значений.

Теперь код должен корректно находить два наибольших числа в массиве a.

18 Апр в 13:30
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 722 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир