Даны натуральное число n и массив A(n). Переформировать массив, расположив вначале массива все отрицательные элементы, а потом положительные — Pascal(Паскаль)

uses crt;

const
  nmax = 100;

var
  a: array [1 .. nmax] of integer;
  n, i, k, j, x: integer;

begin
  clrscr;
  randomize;
  repeat
    write('Размер масива до ', nmax, ' n=');
    readln(n);
  until n in [1 .. nmax];
  writeln('Исходный массив:');
  for i := 1 to n do
  begin
    repeat
      a[i] := random(20) - 9;
    until a[i] <> 0; { поскольку про ноли ничего не сказано, сделаем без нолей }
    write(a[i], ' ');
  end;
  writeln;
  writeln;
  k := 0;
  for i := 1 to n do
    if a[i] < 0 then
    begin
      k := k + 1;
      x := a[i];
      for j := i downto k + 1 do
        a[j] := a[j - 1];
      a[k] := x;
    end;
  writeln('Перестановка отрицательных вперед:');
  for i := 1 to n do
    write(a[i], ' ');
  readln

end.

Leave a Comment

3 + = 8