Удаление элемента в одномерном массиве

Оригинал статьи: http://www.cyberforum.ru/pascal/thread133142.html
Благодарен всем авторам, которые внесли свой вклад в сборку кода.

Удалить все нулевые элементы из введенного пользователем массива.

 
var
  a: array[1..100] of integer;
  i, m, n: integer;

begin
writeln('Колличество элементов массива ='); 
 readln(n);    {считываем количество элементов}
  for i := 1 to n do
    a[i] := random(9);
  writeln('Массив');
  for i := 1 to n do
    write(a[i], ' ');
  writeln;
  writeln('После удаления');
  m := 0;
  for i := 1 to n do
    if (a[i] = 0) then inc(m) else a[i - m] := a[i]; {удаляем элементы}
  dec(n, m);  {уменьшаем количество элементов массива на количество нулевых элементов}
  for i := 1 to n do
    write(a[i], ' '); {вывод на экран}
  readln
end.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии