Здравствуйте. Я вот кое что не пойму с заданием. Вот само задание: После каждого элемента с заданным значением удалить один элемент, если он отличен от заданного значения.
Смысл задания в том, что я задаю массив, потом ещё один элемент и проверяю введённый элемент, если такой элемент есть в массиве, то следующий за ним элемент удаляется?
Допустим пример.
Массив: 1 2 3 4 5
Ещё один элемент: 3
Значит он находит 3 в массиве и после него удаляет элемент, получается 1 2 3 5
Не очень удачный пример привели для Вашего задания.
Вот так понятней будет:
Задан массив:
[1, 12, 3, 56, 34, 34, 2, 18]
Веденный элемент:
[34]
Нашли в массиве 34, сравнили с следующим элементом. Если равно оставляем как есть, иначе удаляем отличный элемент (остальные не трогаем).
При удалении обычно удобнее проходить массив с конца, так что надо сравнивать текущий с предыдущим: если текущий не 34, а предыдущий 34, то удалять текущий.
program lb_4;
var
i, n, k,num: integer;
m: array [1..1000] of integer;
begin
repeat
writeln('Введите любое целое количество элементов от 1 до 1000');
readln(n);
if n < 1 then
writeln('n не может быть меньше единицы')
else if n > 1000 then
writeln('n не может быть больше тысячи')
until (n >= 1) and (n <= 1000);
if n = 1 then begin
writeln('В массиве не может быть один элемен, удалять будет нечего.');
exit;
end;
for i := 1 to n do
begin
write('Введите ', i, ' элемент: ');
readln(m[i]);
end;
writeln;
write('Укажите еще один элемент: ');
readln(num);
writeln('Исходный массив:');
for i := 1 to n do
begin
write(m[i], ' ');
end;
for i := 1 to n do
if m[i] = m[num] then
begin
// код
end;
writeln;
writeln('Массив после удаления:');
for i := 1 to n do
write(m[i], ' ');
writeln();
end.