@Alexandr_202

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

Нужна помощь в написании программы.
Задан одномерный массив вещественных чисел, отсортированный по возрастанию значений элементов. Удалить из массива заданное число (если оно там имеется, если нет – выдать сообщение) с сохранением порядка элементов, для чего выполнить сдвиг влево.
Прежде всего я не понимаю, как выбить этот элемент из массива. Насколько я знаю подобных функций нет в языке C/C++.
Ну и разбор деталей остального процесса тоже не помешал бы.
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@res2001
Developer, ex-admin
Прежде всего я не понимаю, как выбить этот элемент из массива

В вопросе уже есть ответ на вашу непонятку:
для чего выполнить сдвиг влево.

Т.е. вам не нужно фактически удалять найденное значение (к тому же это и не возможно сделать), нужно просто передвинуть остающиеся элементы на одно значение. Таким образом массив не уменьшиться в размере, но последний элемент будет не актуальным, после сдвига ему можно присвоить некоторое значение, которого не может быть в существующих элементах (если такое возможно). Копировать элементы массива можно просто с помощью memmove().
Искать элемент в отсортированном массиве нужно используя двоичный поиск.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
System Engineer
Прежде всего я не понимаю, как выбить этот элемент из массива.

Ну так взяли и написали. Можно "в лоб" - тупо создать новый массив, но без этого элемента. Остальное - рутина.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы