Урок 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
- 2087 reads
vedro-compota
Thu, 08/19/2021 - 20:56
Permalink
for j:=1 to high(arrInt) do /
можно начинать не с единицы
_____________
матфак вгу и остальная классика =)