Удаление элементов одномерного массива
Имеется одномерный массив, содержащий числа от 0 до 35-ти. Требуется исключить из него все элементы, значения которых меньше 15.
Требуется присвоить значение N переменной m, так как N - это константа и не может быть изменена. Поскольку при обходе массива в цикле while
некоторые элементы будут удаляться, то значение m, обозначающее длину массива, будет уменьшаться.
Если очередной элемент не удаляется, то переходим к просмотру следующего элемента (i := i + 1
) и не уменьшаем массив (m не меняется).
Программа на языке Паскаль:
const N = 10;
var
arr: array[1..N] of integer;
m, i, j: integer;
begin
randomize;
for i := 1 to N do begin
arr[i] := random(35);
write(arr[i], ' ');
end;
writeln;
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], ' ');
writeln;
end.
Пример выполнения программы:
5 34 16 12 12 17 14 15 19 8
34 16 17 15 19