Выведите номера трёх различных минимальных элементов массива - Pascal ABC (12992)

Формулировка задачи:

Заполните массив случайными числами в интервале (0,1000) и выведите номера трёх различных минимальных элементов.Разрешается сделать только один проход по массиву

Код к задаче: «Выведите номера трёх различных минимальных элементов массива - Pascal ABC (12992)»

textual
const n=20;
var a:array[1..n] of integer;
    i,j,mn1,mn2,mn3:integer;
begin
randomize;
writeln('Исходный массив');
for i:=1 to n do
 begin
  a[i]:=random(1001);
  write(a[i]:4);
 end;
writeln;
if a[1]<a[2] then mn1:=1 else mn1:=2;
if a[3]<a[mn1] then mn1:=3;
if a[1]>a[2] then mn3:=1 else mn3:=2;
if a[3]>a[mn3] then mn3:=3;
mn2:=6-mn1-mn2;
for i:=4 to n do
if a[i]<a[mn1] then
 begin
  mn3:=mn2;
  mn2:=mn1;
  mn1:=i;
 end
else if a[i]<a[mn2] then
 begin
  mn3:=mn2;
  mn2:=i;
 end
else if a[i]<a[mn3] then mn3:=i;
writeln('Первые 3 минимальных имеют номера ',mn1,'(',a[mn1],') ',mn2,'(',a[mn2],') ',mn3,'(',a[mn3],')');
end.

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

5   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ