- •Глава 3 Одномерные массивы
- •Нахождение суммы элементов массива
- •Суммирование элементов массива с учетом условия
- •Нахождение среднего арифметического
- •Нахождение среднего арифметического при условии
- •Поиск максимального элемента в массиве
- •Поиск индексов в массиве
- •Проверка упорядоченности массива
- •Обмен значений массива
- •Суммирование соседних элементов массива
- •Подсчет соседних элементов по условию
- •Перенос модулей значений в другой массив
- •Подсчет количества максимальных элементов
- •Изменение значений элементов массива с заданными свойствами
- •Нахождение индексов элементов с заданными свойствами
- •Удаление из массива определенного элемента
- •Циклическое перемещение элементов массива
- •Заполнение массива случайными числами
- •Нахождение суммы группы элементов массива
Нахождение среднего арифметического
Среднее арифметическое значение элементов массива вычисляется по следующей формуле:
. (3.2)
Алгоритм вычисления соотношения (3.2) похож на ранее рассмотренное вычисление суммы элементов массива, и в листинге 3.3 приведена программа, реализующая решение данной задачи.
Листинг 3.3. Вычисление среднего арифметического значения элементов массива
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
#define N 10
#define NM 11
void main()
{
int A[NM];
int J,S;
for (J=1; J<= N; J++)
{ A[J]=rand()%100;
cout <<"\n"<<A[J]; }
S=0;
for (J=1; J<= N; J++)
{
S= S + A[J];
}
S= S/N;
cout <<"\nSumma="<<Summa;
_getch();
}
Нахождение среднего арифметического при условии
Внесем небольшие изменения в предыдущую программу. Так, нам необходимо подсчитать среднее значение только для тех элементов, которые расположены в интервале от -15 до 20 (включая границы интервала). При заполнении массива обеспечим внесение в него наряду с положительными значениями еще и отрицательные.
Программная разработка, решающая поставленную задачу, приведена в листинге 3.4. Здесь для подсчета элементов массива, участвующих в расчете среднего значения, используется переменная M.
Листинг 3.4. Вычисление среднего значения элементов массива при условии
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
#define N 10
#define NM 11
void main()
{
int A[NM];
int J,M;
float S;
for (J=1; J<= N; J++)
{ A[J]=rand()%101 - 50;
cout <<"\n"<<A[J]; }
S=0;
M=0;
for (J=1; J<= N; J++)
{
if ( (A[J] >= -15 )&& ( A[J] <= 20))
{
M=M+1;
S= S + A[J];
}
}
S= S / M;
cout <<"\nS="<<S;
_getch();
}
Поиск максимального элемента в массиве
В листинге 3.5 приведена программа поиска максимального элемента в числовом массиве. Сам массив предварительно заполняется случайными целыми числами. Блок-схема алгоритма показана на рис. 3.1.
Листинг 3.5. Поиск максимального элемента в массиве
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
#define N 10
#define NM 11
void main()
{
int A[NM];
int J,Max;
float S;
for (J=1; J<= N; J++)
{ A[J]=rand()%100;
cout <<"\n"<<A[J]; }
Max= A[1];
for (J=2; J<= N; J++)
{
if ( A[J] > Max )
Max=A[J];
}
cout <<"\n'Максимальный элемент ="<<Max;
_getch();
}

Рис. 3.1. Блок-схема к программе листинга 3.5
Поиск индексов в массиве
Рассмотрим еще один пример. Пусть наша задача заключается в том, чтобы найти индексы максимального и минимального элементов в массиве. В листинге 3.6 приведена программа поиска указанных индексов для массива элементов, предварительно заполненного случайными числами. Блок-схема алгоритма показана на рис. 3.2.
![]()
Если максимальных или минимальных элементов несколько, то данная программа отображает только индексы первых найденных элементов.
Листинг 3.6. Поиск индексов минимального и максимального элементов массива
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
#define N 10
#define NM 11
void main()
{
int A[NM];
int J,Jmax,Jmin,Max,Min;
for (J=1; J<= N; J++)
{ A[J]=rand()%100;
cout <<"\n"<<A[J]; }
Max= A[1];
Min= A[1];
Jmax=1;
Jmin=1;
for (J=2; J<= N; J++)
{
if ( A[J] > Max)
{ Max=A[J];
Jmax=J; }
if ( A[J] < Min)
{ Min=A[J];
Jmin=J; }
}
cout <<"\nИндекс максимального элемента равен "<<Jmax;
cout <<"\nИндекс минимального элемента равен "<<Jmin;
_getch();
}

Рис. 3.2. Блок-схема к программе листинга 3.6
