Помощь - Поиск - Пользователи - Календарь
Полная версия: сдвиг нулей в одномерном массиве
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
NRG
помогите написать прогу))
Программа должна иметь одномерный массив и должна выполнять сдвиг всех нулей в конец а порядок других чисел при этом должен остаться неизменным
-TarasBer-
Вот код, у меня работает.

{$APPTYPE CONSOLE}

var
p: array [0 .. 9] of integer;
i: integer;
tmp: integer;
good: boolean;

begin
randomize;
for i := 0 to 9 do p[i] := random(5);
for i := 0 to 9 do write(p[i], ' ');

repeat
i := random(9);
if (p[i] = 0) and (p[i + 1] <> 0) then begin
tmp := p[i];
p[i] := p[i + 1];
p[i + 1] := tmp;
end;

good := true;
for i := 0 to 8 do if (p[i] = 0) and (p[i + 1] <> 0) then begin
good := false;
break;
end;

until good;

writeln;
for i := 0 to 9 do write(p[i], ' ');

readln;

end.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.