Отсортировать элементы одномерного массива между минимумом и максимумом в порядке возрастания — Pascal(Паскаль)

uses crt;
var m:array[1..100]of integer;
i,j,b,n,min,max:integer;
 
begin
 clrscr;
 write('N-> ');
 readln(n);
 for i:=1 to n do
 begin
  m[i]:=-100+random(201);
  write(m[i],' ');
 end;
 writeln;
 min:=1;
 max:=2;
 for i:=1 to n do if m[i]>m[max] then max:=i else if m[i]<m[min] then min:=i;
 writeln('MAX - M[',max,']=',m[max]);
 writeln('MIN - M[',min,']=',m[min]);
 for i:=max-1 downto min+1 do
 for j:=min+1 to i do if m[j]>m[j+1] then
 begin
  b:=m[j];
  m[j]:=m[j+1];
  m[j+1]:=b;
 end;
 for i:=1 to n do write(m[i],' '); 
 readln;
end.

Следующий вариант

uses crt;
const max=100;
var a,b:array[1..max] of integer;
    n,i,j,k,imn,imx:byte;
    x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива n=');
readln(n);
until n in [1..max];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(20)+1;
  write(a[i],' ');
 end;
writeln;
writeln;
imn:=1;
imx:=1;
for i:=1 to n do
 begin
  if a[i]<a[imn] then imn:=i;
  if a[i]>a[imx] then imx:=i;
 end;
writeln('Минимальный элемент =',a[imn],' номер=',imn);
writeln('Максимальный элемент=',a[imx],' номер=',imx);
if imn<imx then
for i:=imn+1 to imx-2 do
for j:=i+1 to imx-1 do
if a[i]>a[j] then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end
else
 for i:=imx+1 to imn-2 do
 for j:=i+1 to imn-1 do
  begin
   x:=a[i];
   a[i]:=a[j];
   a[j]:=x;
  end;
writeln('Массив после сортировки:');
for i:=1 to n do
write(a[i],' ');
readln
end.

Leave a Comment

41 − = 33