нужно удалить из массива конкретный элемент, допустим, а [5]. Элемент нужно удалить вообще, к примеру если был массив из 10, чтоб стал из 9.
Может если для этого какой-то оператор или хотя бы примерный алгоритм подскажите, просто никак не соображу
Другие языки программирования и технологии
Как из массива удалить элемент?
Судя по твоим предыдущим вопросам, язык Паскаль. Ну так вот, для обычного массива это невозможно. Но для динамического
var a:array of integer;
...
SetLength(a,10);{10 элементов от 0 до 9!}
...
a[5]:=a[9];{заменяем 5-й эл-т 9-м, последним}
SetLength(a,9);{и уменьшаем массив на 1 элемент}
...
А в будущем указывай язык, ок?
var a:array of integer;
...
SetLength(a,10);{10 элементов от 0 до 9!}
...
a[5]:=a[9];{заменяем 5-й эл-т 9-м, последним}
SetLength(a,9);{и уменьшаем массив на 1 элемент}
...
А в будущем указывай язык, ок?
> Элемент нужно удалить вообще
С массивом такого не получится, там все равно будет пятый элемент :) , если размер массива больше пяти.
Простейший вариант, считать размер массива, как некую переменную, а остальные элементы просто не использовать:
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.
В ТурбоПаскале тоже можно создавать массивы динамически, но это сложнее.
С массивом такого не получится, там все равно будет пятый элемент :) , если размер массива больше пяти.
Простейший вариант, считать размер массива, как некую переменную, а остальные элементы просто не использовать:
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.
В ТурбоПаскале тоже можно создавать массивы динамически, но это сложнее.
ну либ наужн перехреначить ссыль 4го элемента на шестой
либ пересоздать без пятого. 2е - костыль но легче
либ пересоздать без пятого. 2е - костыль но легче
что за бред? чтоб массив из строки 10 символов стал строй из 9 надо удалять не число а столбец.
а так задачу можно решить тупым перебором и последующем копированием с пропуском указного столбца.
а так задачу можно решить тупым перебором и последующем копированием с пропуском указного столбца.
Пишите на почту или в асю 586178755
а в языках си элемент в массиве удалить нельзя вообще, только если обнулить
Похожие вопросы
- Не пойму как удалить элементы массива (C++).
- Как удалить нулевые элементы из массива C++. Помогите написать код для того чтобы из массива удалить все нулевые элементы
- Как удалить элемент массива со сдвигом остальных элементов в С++
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Help me!Удалить элементы кратные 2. Добавить после каждого нечетного элемента массива элемент со значением 0. си++
- Помогите написать программу на с++ Циклический сдвиг элементов массива вправо Массив 20 элементов, random
- c# удалить элемент
- взять из массива наибольший элемент c++. Возможно ли это? и как?
- Си. Как проверить, есть ли в одномерном массиве повторяющиеся элементы?
- 1.Заполнить массив случайными числами. Вывести элементы массива на экран. Заменить все его минимальные элементы нулями.