Урок 21.Задача №2.Вариант 2. Перенести все нули в конец массива
Primary tabs
Есть массив (пусть не более 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.
- Log in to post comments
- 1527 reads
vedro-compota
Thu, 08/19/2021 - 20:56
Permalink
for j:=1 to high(arrInt) do /
можно начинать не с единицы
_____________
матфак вгу и остальная классика =)