Дан одномерный массив. Все его элементы, равные нулю, переписать в начало массива, а...

0 голосов
61 просмотров

Дан одномерный массив. Все его элементы, равные нулю, переписать в начало массива, а остальные в конец. Язык Pascal


Информатика (22 баллов) | 61 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  a : array [1..100] of integer;
  n, i, c, free : integer;
begin
  read (n);
  for i := 1 to n do read (a[i]);
  c := 0;
  for i := 1 to n do
    if a[i] = 0 then c := c + 1;
  free := n;
  for i := n downto 1
  do
    if a[i] <> 0 then
    begin
      a[free] := a[i];
      free := free - 1;
    end;
  for i := 1 to c do
    a[i] := 0;
  for i := 1 to n do
    write (a[i], ' ');
end.

(4.6k баллов)