Типовые действия с массивами — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Типовые действия с массивами

2018-01-04 151
Типовые действия с массивами 0.00 из 5.00 0 оценок
Заказать работу

1. Инициализация массива

Инициализация массива – это присваивание элементам массива начальных значений.

Присваивание всем элементам массива одного и того же значения осуществляется в цикле. Например, чтобы всем элементам массива a присвоить значение 0, можно воспользоватся алгоритмом изображенный на рис.

for(i=0;i<n;i++)

a[i]=0;

// или с помощью цикла while

i=0;

while (i<n)

{

a[i]=0;

i=i+1;

}

В представленном алгоритме все элементы массива в цикле последовательно инициализируются значением – 0.

2. Перестановка элементов массива.

Пример: Поменять местами заданный элемент массива x[k] с последующим.

При решении этой задачи необходимо учитывать, что если заданный элемент массива x[k] является последним, то обмен выполнить не возможно, поскольку последующий элемент отсутствует.

 

if(k == n-1)

puts("Обмен не возможен.");

else

{

 

tmp=x[k];

x[k]=x[k+1];

x[k+1]=tmp;

}

При перестановке с предыдущим элементом, обмен невозможен если заданный элемент является первым (k=0).

3. Вычислительные действия.

Например: вычисление суммы элементов массива.

#include <stdio.h>

#include <conio.h>

int main()

{

int arr[5] = {1, 2, 3, 4, 5};

int sum = 0;

for (i = 0; i < 5; ++i)

{

sum += arr[i];

}

printf("%d", sum);

getch();

return 0;

}

4. Поиск нужного элемента

При поиске элементов, обладающих заданным свойством, необязательно просматривать все элементы массива. Например, требуется определить, есть ли в массиве хотя бы один нулевой элемент. Для ответа на этот вопрос, достаточно в цикле просматривать элементы массива до тех пор, пока не закончится массив или не встретится равный нулю элемент. Если, например, уже третий элемент равен нулю, то остальные элементы просматривать нет необходимости.

 

В таких случаях для просмотра массива обычно используется оператор цикла while со сложным условием. Графическая схема для рассматриваемого примера изображена на рисунке. После цикла достаточно проверить, чему равно i. Если окажется, что i=n, т.е. были просмотрены все элементы, то в массиве нет нулевых элементов.

i=0;

while(i<n && a[i]!=0) i=i+1;

If(i == n)

puts("В массиве нет нулевых элементов");

else

puts("В массиве есть нулевой элемент");

 

5. Копирование массивов

k=0;

 

for(i=in;i<ik;i++)

 

{

 

y[k]=a[i];

 

k++;

 

}

В зависимости от параметров in и ik, в массив y[ ] копируются элементы из исходного массива a[ ]. Так для копирования всех элементов массива a[ ] необходимо задать in=0, ik=n (n – количество элементов массива a[ ]). При копировании части массива, например с 3 по 9, принимаем in=2 (поскольку нумерация элементов массива в С++, начинается с нуля) и ik=9.

Сортировка элементов одномерного массива

Сортировка – это расстановка элементов некоторого списка в заданном порядке.

Метод пузырька

Сначала сравниваем последний элемент с предпоследним. Если они стоят неправильно, то

меняем их местами. Далее так же рассматриваем следующую пару элементов и т.д. Когда мы обработали пару (A[0], A[1]), минимальный элемент стоит на месте A[0]. Это значит, что на следующих этапах его можно не рассматривать.

Сделав N-1 проходов, мы установим на место элементы с A[0] по A[N-2]. Это значит, что последний элемент, A[N-1], уже тоже стоит на своем месте (другого у него нет).

#include <stdio.h>

const int N = 10;

main()

{

int i, j, A[N], c;

// здесь надо ввести массив A

for (i = 0; i < N-1; i ++) // достаточно поставить N-1 элементов

for (j = N-2; j >= i; j - -) // идем с конца массива в начало

if (A[j] > A[j+1]) // если они стоят неправильно,...

{

c = A[j]; A[j] = A[j+1]; // переставить A[j] и A[j+1]

A[j+1] = c;

}

printf("\n Отсортированный массив:\n");

for (i = 0; i < N; i ++)

printf("%d ", A[i]);

}


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.