Найти два разных max в масииве - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Программку набросал, вреде работает, но не до конца. почему-то находит два одинаковых max на одних и тех же местах, а надо чтобы даже если числа msx в массиве одинаковые, то выводился бы разный индекс этих чисел. Вот код программы:
Всем БОЛЬШОЕ спасибо за помощь!!!

Решение задачи: «Найти два разных max в масииве»

textual
Листинг программы
const N=25;
type x=array [1..N] of integer;
var a:x;
i:integer;
max1,max2:integer;
imax1, imax2:integer;
begin
 randomize;
  for i:=1 to N do
   begin
    a[i]:= -50+random(101);
    write (A[i]:4)
   end;
  writeln;
 imax1:=1;
 max1:=A[1];
 if a[2]>max1 
  then
   begin
    max2:=max1;imax2:=1;
    max1:=a[2];imax1:=2
   end
  else
   begin
    max2:=a[2];imax2:=2
   end;
 for i:=3 to n do
  begin
   if a[i]>max1 
    then begin max2:=max1;imax2:=imax1;max1:=a[i];imax1:=i end
    else if (a[i]=max1)or(a[i]>max2)
           then begin max2:=a[i];imax2:=i end
  end;
 writeln ('1-й Максимальный элемент в массиве=',max1);
 writeln ('Его индекс=',imax1);
 writeln ('2-й Максимальный элемент в массиве=',max2);
 writeln ('Его индекс=',imax2);
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы