Другие языки программирования и технологии

Как из массива удалить элемент?

нужно удалить из массива конкретный элемент, допустим, а [5]. Элемент нужно удалить вообще, к примеру если был массив из 10, чтоб стал из 9.
Может если для этого какой-то оператор или хотя бы примерный алгоритм подскажите, просто никак не соображу
Судя по твоим предыдущим вопросам, язык Паскаль. Ну так вот, для обычного массива это невозможно. Но для динамического
var a:array of integer;
...
SetLength(a,10);{10 элементов от 0 до 9!}
...
a[5]:=a[9];{заменяем 5-й эл-т 9-м, последним}
SetLength(a,9);{и уменьшаем массив на 1 элемент}
...

А в будущем указывай язык, ок?
Сергей Шешин
Сергей Шешин
66 678
Лучший ответ
> Элемент нужно удалить вообще
С массивом такого не получится, там все равно будет пятый элемент :) , если размер массива больше пяти.
Простейший вариант, считать размер массива, как некую переменную, а остальные элементы просто не использовать:
const
    n = 10;
    cn: integer = 10;
    a: array[1..n] of integer = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
var
    c: integer;
begin
    for c := 1 to cn do write(' ', a[c]);
    writeln;
    for c := 5 to cn - 1 do a[c] := a[c + 1];
    dec(cn);
    for c := 1 to cn do write(' ', a[c]);
    readln;
end.

В delphi, free pascal можно использовать динамические массивы:

var
    a: array of integer;
    n, c: integer;
begin
    n := 10;
    setlength(a, n);
    for c := 0 to n - 1 do a[c] := c;
    for c := 0 to n - 1 do write(' ', a[c]);
    writeln;
    for c := 4 to n - 2 do a[c] := a[c + 1];
    dec(n);
    setlength(a, n);
    for c := 0 to n - 1 do write(' ', a[c]);
    readln;
end.

В ТурбоПаскале тоже можно создавать массивы динамически, но это сложнее.
@rtur Пиль
@rtur Пиль
75 990
ну либ наужн перехреначить ссыль 4го элемента на шестой
либ пересоздать без пятого. 2е - костыль но легче
что за бред? чтоб массив из строки 10 символов стал строй из 9 надо удалять не число а столбец.
а так задачу можно решить тупым перебором и последующем копированием с пропуском указного столбца.
Пишите на почту или в асю 586178755
а в языках си элемент в массиве удалить нельзя вообще, только если обнулить

Похожие вопросы