| Сьогодні | Разом | |
| Відвідувань | 290 | 5403873 |
| Авторізацій | 11 | 434261 |
| Користувачів | 5 | 2731 |
28. Удалить первый нулевой элемент массива
k := 1; while (k <= n) and (a[k] <> 0) do k := k + 1;Итак, переменная k содержит индекс первого нулевого элемента массива, если он существует, или на единицу больше, чем значение переменной n. Это означает, что в массиве нет нулевого элемента (, а значит и удалять ничего не нужно).
if (k <= n)
then begin
// Удалить k-й элемент массива
end
Объединим в единое целое получим:
k := 1;
while (k <= n) and (a[k] <> 0) do
k := k + 1;
if (k <= n)
then begin
n := n - 1;
for i := k do n do
a[i] := a[i + 1]
end
И так, первый нулевой элемент массива удален. А как быть, если надо удалить все нулевые элементы массива?