Урок 23 задача 2 массив перенести все нули в конец
Primary tabs
Есть массив (пусть не более 10 элементов):
[0,0,3,4,5,86,8,9,0,89]
Задача: перенести все нули в конец, так чтобы в итоге получилось:
[3,4,5,8,8,9,89,0,0,0]
Решите:
1 Любым способом
2 Решите со сложностью не более чем 2N (не заводя дополнительных массивов)
program zero_end;
type
arrNum10 = array[1..10] of integer;
const mas : arrNum10 = (0,4,3,4,0,86,8,9,0,89);
var i,ind_number,b : integer;
begin
ind_number:=0;
b:=0;
for i:=1 to length(mas) do
begin
if(mas[i]=0) and (b=0) then
begin
ind_number:=i;
b:=1
end
else
begin
if(mas[i] > 0) and (b>0) then
begin
mas[ind_number]:=mas[i];
ind_number+=1;
mas[i]:=0;
end;
end;
end;
// вывод массива
for i:=1 to length(mas) do
write(mas[i],' ')
end. - Log in to post comments
- 1089 reads