Урок 21.Задача №2.Вариант 2. Перенести все нули в конец массива

Урок 21.Задача №2

Есть массив (пусть не более 10 элементов):

	
[0, 3, 2, 1, 0, 3, 2, 4, 0, -5]

Задача: перенести все нули в конец, так чтобы в итоге получилось:

[3, 2, 1, 3, 2, 4, -5, 0, 0, 0]

Решите со сложностью не более чем 2N

program array_zero2;
  var i,lab,j : integer;
  arrInt : array[1..10] of integer;

begin
  // заполнение массива
  arrInt[1] := 8;
  arrInt[2] := 0;
  arrInt[3] := 0;
  arrInt[4] := 9;
  arrInt[5] := 3;
  arrInt[6] := 0;
  arrInt[7] := 78;
  arrInt[8] := 0;
  arrInt[9] := 8;
  arrInt[10] := 9;

  lab := 1;
  for i:=1 to high(arrInt) do // определяем значения отличные не нули
  begin
      if(arrInt[i] <> 0) then
      begin
          arrInt[lab] := arrInt[i];
          lab += 1;
      end;
  end;

  for j:=1 to high(arrInt) do // добавление нулей
  begin
      if(j >= lab) then
          write(0,' ')
      else
          write(arrInt[j],' ');
  end;
readln();
end.
vedro-compota's picture

for j:=1 to high(arrInt) do //

можно начинать не с единицы

_____________
матфак вгу и остальная классика =)