Удаление элементов одномерного массива
Задача
Допустим, имеется одномерный массив, содержащий числа от 0 до 49 включительно. Требуется исключить из него все элементы, значения которых меньше 15.
Похожие задачи
Решение
Присваивание значение n переменной m требуется, т.к. n - константа и не может быть изменена. Поскольку при "просмотре" массива в цикле while некоторые элементы будут удаляться, то значение m, обозначающее длину массива, будет уменьшаться.
Если очередной элемент не удаляется, то переходим к просмотру следующего элемента (i := i + 1) и не уменьшаем массив (m не меняется).
Программа на языке Паскаль:
const n = 20; var arr: array[1..n] of integer; i, j, m: integer; begin randomize; for i := 1 to n do begin arr[i] := random(50); write(arr[i]:4); end; m := n; i := 1; while i <= m do if arr[i] < 15 then begin for j := i to m - 1 do arr[j] := arr[j+1]; m := m - 1 end else i := i + 1; for i:= 1 to m do write(arr[i]:4); readln end.
Комментарии
Этот код не смотрит…
Этот код не смотрит последний элемент массива.
С удалением чисел из массива…
С удалением чисел из массива