Поменять местами 1-вый отрицательный и последний положительный элементы массива. Учесть возможность того, что отрицательный или положительный элемент в массиве может не быть — Pascal(Паскаль)

program zad;
var
a:array[1..20] of integer;
 
i,i1,i2,k,k1,k2:integer;
sum:real;
begin
  randomize;
  writeln('исходный массив: ');
  for i:=1 to 20 do
  begin
    a[i]:=random(101)-50;
    write(a[i]:4);
  end;
  for  i:=20 downto 1 do
  begin
    if a[i]<0 then i1:=i;
 
  end;
  for  i:=1 to 20 do
  begin
    if a[i]>=0 then i2:=i;
 
  end;
  k1:=0;k2:=0;
  for i:=1 to 20 do
  begin
    if a[i]<0 then k1:=k1+1;
    if a[i]>=0 then k2:=k2+1;
  end;
  if (k1=0) or (k2=0) then
  begin
    writeln('ошибка!');
    readln;
    exit;
  end;
  writeln;
  writeln('преобразованный массив: ');
  for i:=1 to 20 do
  begin
    if i=i1 then
    begin
      k:=a[i];
      a[i]:=a[i2];
      a[i2]:=k;
    end;
   end;
   for i:=1 to 20 do
   write(a[i]:4);
  readln;
end.

Leave a Comment

22 + = 31