Задан одномерный массив. Требуется найти 4 минимальных значения и их номера — Pascal(Паскаль)

uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,m,i,j,imn:byte;
    mx,mn:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(20)+5;
  write(a[i],' ');
 end;
writeln;
writeln;
{находим максимум}
mx:=a[1];
for i:=1 to n do
if a[i]>mx then  mx:=a[i];
{находим минимальныe и их номера}
writeln('Первые 4 минимальных и их индексы:');
for j:=1 to 4 do
 begin
  mn:=mx;imn:=0;
  for i:=1 to n do
  if a[i]<=mn then
   begin
    mn:=a[i];{нашли очередной минимум}
    imn:=i;{его индекс}
   end;
  writeln(mn,' - #',imn);{выводим}
  a[imn]:=mx;{заменяем на максимум}
 end;
writeln;
readln
end.

Leave a Comment

− 3 = 4