Найти два разных 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.