Задан массив А(N).
Элементы массива, находящиеся между максимальным и минимальным элементами,
отсортировать в порядке убывания. Отсортированный массив вывести на печать.
Помогите с кодом. Голова уже не варит.
uses crt;
var a:array [1..100]of integer;
n,i,j,k,x:integer;
begin
clrscr;
randomize;
write('Введите массив: n=');readln(n);
writeln('Исходный массив:');
for i:=1 to n do
begin
a[i]:=random(200);;
write(a[i],' ');
end;
writeln;
for i:=2 to n do
begin
x:=a[i];
j:=1;
while x>a[j] do inc(j);
for k:=i-1 downto j do a[k+1]:= a[k];
a[j]:=x;
end;
writeln('Отсортированный массив:');
for i:=1 to n do
write(a[i],' ');
readln
end.
Imin:=1;
for i:=2 to n do
if a[Imin]>a[i] then
Imin:=i;
if Imin>Imax then
begin
i:=Imin;
Imin:=Imax;
Imax:=i;
end;
for i:=Imin+1 to Imax do
begin
x:=a[i];
j:=Imin;
while x<a[j] do inc(j);
for k:=i-1 downto j do
a[k+1]:= a[k];
a[j]:=x;
end;
begin
x:=a[i];
j:=1;
while x<a[j] do inc(j);
for k:=i-1 downto j do a[k+1]:= a[k];
a[j]:=x;
end;
program lab;
uses
crt;
var
a: array [1..100] of integer;
n, i, j, k, x, Imin, Imax: integer;
begin
clrscr;
randomize;
Write('Введите массив: n=');
readln(n);
WriteLn('Исходный массив:');
for i := 1 to n do
begin
a[i] := random(200);
;
Write(a[i], ' ');
end;
WriteLn;
Imin := 1;
for i := 2 to n do
if a[Imin] > a[i] then
Imin := i;
begin
x := a[i];
j := 1;
while x < a[j] do
Inc(j);
for k := i - 1 downto j do
a[k + 1] := a[k];
a[j] := x;
end;
if Imin > Imax then
begin
i := Imin;
Imin := Imax;
Imax := i;
end;
WriteLn('Отсортированный массив:');
for i := Imin + 1 to Imax do
begin
x := a[i];
j := Imin;
while x < a[j] do
Inc(j);
for k := i - 1 downto j do
a[k + 1] := a[k];
a[j] := x;
end;
end.