Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение - Pascal ABC

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

Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение. Вот шапка:
Uses Crt;
Type Mas = array [1..10] of integer;      
 Var  A: Mas;              
      i:integer;  
Begin
Randomize;
For i:=1 to 10 do begin
      A[i]:=random(20)-10;  
      Write(A[i]:4);                
 end;

Код к задаче: «Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение - Pascal ABC»

textual
Uses Crt;
Const n=20;
Type Mas = array [1..n] of integer;
Var  A: Mas;
     i,i1,imn,x:integer;
Begin
Randomize;
Writeln('Исходный массив');
For i:=1 to n do
 begin
  A[i]:=-10+random(21);
  Write(A[i]:4);
 end;
Writeln;
i1:=0;
imn:=1;
For i:=1 to n do
 begin
  if A[i]<A[imn] then imn:=i;
  if(i1=0)and(A[i]=0)then i1:=i;
 end;
Writeln('Минимальный элемент=',A[imn],' его номер=',imn);
if i1=0 then Write('Нулевого элемента нет')
else
 begin
  Writeln('Номер первого нулевого элемента=',i1);
  x:=A[imn];
  A[imn]:=A[i1];
  A[i1]:=x;
  Writeln('Обмен первого нулевого и минимального элементов');
  For i:=1 to n do
  Write(A[i]:4);
 end;
end.

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


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