Формирование нового массива

 

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

При формировании новых массивов удобно использовать динамические массивы, поскольку число его элементов заранее не известно. Алгоритм создания нового массива схож с алгоритмом копирования (рисунок 2.19).

 

A={6,0,-5,9,0,-4,8,-7,-5,44} Y={6,9,8,44} k=0; for(i=in;i<ik;i++) if (a[i]>0) { y[k]=a[i]; k++; }

Рисунок 2.19 Алгоритм и фрагмент программы формирования нового массива

 

Для последовательной записи элементов в новый массив используется дополнительная переменная kсчетчик элементов в новом массиве. Начальное значение этой переменной принимается равной нулю, т.е считается что в новом массиве нет элементов. При обнаружении в исходном массиве элемента удовлетворяющего заданному условию, его значение заносится в новый массив на позицию k, а после счетчик элементов увеличивается на единицу (k=k+1). Таким образом, после обработки всего исходного массива по значению счетчика k можно определить, сформирован новый массив (k>0) и сколько в нем элементов (k).

 

Пример 2.8

Даны два одномерных массива X и Y. Необходимо сформировать массив Z из положительных элементов массива X, стоящих на четных местах, и элементов массива Y, больших первого элемента массива X.

X={2,3,-2,3,-4,-5,5}

Y={3,1,0,4,2,8}

Z={3,3,3,4,8}