Перенести отрицательные элементы в конец массива

Дан одномерный массив из n элементов. Необходимо перенести отрицательные элементы в конец массива.

code: #pascal
  1. program z_array;
  2. uses crt;
  3. type mass=array [1..100] of real;
  4. var a:mass;
  5.     i,n:byte;
  6. procedure mPoem(var a:mass;n:byte);
  7. var i,j,k:byte;
  8.     temp:real;
  9. begin
  10.  k:=0;
  11.  i:=1;
  12.  while i+k <= n-1 do
  13.  begin
  14.   if a[i] < 0 then
  15.   begin
  16.    temp:=a[i];
  17.    for j:=i to n-1 do
  18.     a[j]:=a[j+1];
  19.    a[n]:=temp;
  20.    dec(i);
  21.    inc(k);
  22.   end;
  23.   inc(i);
  24.  end;
  25. end;
  26. begin
  27.  clrscr;
  28.  {Ввод размерности массива}
  29.  writeln('Введите количество элементов массива');
  30.  readln(n);
  31.  {/Ввод размерности массива}
  32.  writeln;
  33.  {Ввод элементов массива}
  34.  writeln('Введите элементы массива');
  35.  for i:=1 to n do
  36.  begin
  37.   write('a[',i,']= ');
  38.   readln(a[i]);
  39.  end;
  40.  {/Ввод элементов массива}
  41.  writeln;
  42.  writeln('Данный массив');
  43.  {Вывод данного массива}
  44.  for i:=1 to n do
  45.   write(a[i]:7:2);
  46.  {/Вывод данного массива}
  47.  writeln;
  48.  writeln;
  49.  mPoem(a,n);
  50.  writeln('Полученный массив');
  51.  {Вывод полученного массива}
  52.  for i:=1 to n do
  53.   write(a[i]:7:2);
  54.  {/Вывод полученного массива}
  55.  readln;  
  56. end.
Поделиться:

Похожие статьи: