Найти два разных max в масииве - Pascal ABC
Формулировка задачи:
Всем доброго времени суток!
Программку набросал, вреде работает, но не до конца. почему-то находит два одинаковых max на одних и тех же местах, а надо чтобы даже если числа msx в массиве одинаковые, то выводился бы разный индекс этих чисел.
Вот код программы:
Всем БОЛЬШОЕ спасибо за помощь!!!
Листинг программы
- program massiv5;
- 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];
- for i:=2 to N do
- if max1<a[i] then
- begin
- max1:=a[i];
- imax1:=i
- end;
- writeln ('1-й Максимальный элемент в массиве=',max1);
- writeln ('Его индекс=',imax1);
- imax2:=2;
- max2:=A[2];
- for i:=3 to N do
- if (max2<a[i]) and (max2<>max1)then
- begin
- max2:=a[i];
- imax2:=i
- end;
- writeln ('2-й Максимальный элемент в массиве=',max2);
- writeln ('Его индекс=',imax2);
- end.
Решение задачи: «Найти два разных 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д