Вывести все четные элементы массива

Задача

В одномерном массиве удалить все четные элементы и оставить только нечетные.

Похожие задачи

Решение

Данную задачу можно решить несколькими способами.

Способ 1. Скопировать в другой массив только нечетные элементы.

Это самый простой способ удаления элементов массива (в данном случае четных чисел), так как не требуется сжимать исходный массив. В представленном выше решении задачи переменная m хранит количество найденных нечетных элементов и в то же время, при заполнении второго массива является меняющимся индексом элементов.

Способ 2. Удалять четные элементы в текущем массиве, перезаписывая их расположенными правее нечетными.

Этот способ решения задачи сложнее. Здесь если встречается четный элемент, то весь остаток массива сдвигается на одну ячейку вперед. При этом найденный четный элемент затирается. Переменная m уменьшается, т. к. количество элементов массива становится меньше.

Способ 3. Использовать открытый массив.

Этот способ следует считать наиболее рациональным (однако в школьном курсе открытые массивы могут не изучаться). В предыдущих вариантах по-сути массивы не уменьшались, на экран выводилась лишь часть массива. Можно было бы вообще просто перебрать исходный массив, ничего с ним не делать и вывести на экран только нечетные элементы.

Открытый массив позволяет изменять свою длину. В решении задачи ниже после того как нечетные элементы сдвинуты и «затерли» нечетные, изменяется длина массива (процедурой setlength). Она устанавливает новую длину массива. Особенностью открытых массивов в Pascal является то, что их индексация начинается с нуля.

Условие задачи : Массив А вводится с клавиатуры. Вывести только нечетные элементы. Размер произвольный. (Язык Паскаль)

Сложность: легкая.

Для начала продумаем наше решение. Тут довольно всё просто. Сначала с помощью одного цикла заполним наш массив, потом с помощью другого выведем нечетные элементы.

Читайте также:  Гугл хром мои действия

Для того чтобы решить задачу нам понадобятся следующие переменные:

1. Переменная A — для массива
2. Переменная n — для количества элементов массива
3. Переменная i — для цикла.

Начнем мы с каркаса нашей программы :

Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ), объявили переменные, попросили пользователя ввести кол-во элементов массива.

Теперь давайте заполним наш массив:

Ну а теперь нам надо вывести именно нечетные элементы, тут нам поможет условие:

Это условие определяет число на нечетность с помощью операции mod, которая ищет остаток от деления, читайте подробнее ( тут ), мы пишем:

Мы в цикле проверяем каждое число на нечетность и если оно нечетное то выводим его.

На этой странице дано решение задач Array7 — Array10 на одномерные массивы раздела Array из задачника Абрамяна.

Имеем первый вариант решения, в котором просто выводим элементы массива, предварительно анализируя их:

Во втором варианрте сначала составляем два массива с указанными элементами, а потом выводим их.