<тип><имя>[ <размерность> ];
МАССИВЫ
Массив – это конечная поименованная последовательность однотипных величин.
Описание массива:
< тип> < имя> [ < размерность> ];
Размерность массива вместе с типом его элементов определяет объём памяти, который необходим для размещения массива. Поэтому размерность массива может быть указана только константой или константным выражением.
Например:
const n=15;
char mas[n]; массив из 15 символов.
float a[10]; массив из 10 вещественных чисел.
Инициализирующие значения записываются в фигурных скобках. Значения элементам присваиваются по порядку. Инициализаторов должно быть не больше количества элементов массива. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значение не указано, обнуляются.
Например:
int b[5] = {4, 3, 1};
|
|
|
|
|
| Элементы массива b
| 4
| 3
| 1
| 0
| 0
| Если размерность не указана, то должен быть указан инициализатор. В этом случае память выделяется по количеству инициализирующих значений.
Например:
int a[] = {4, 7, 3, 1, 2}; будет создан массив из 5 элементов
Чтобы обратиться к элементу массива, надо после имени массива в квадратных скобках указать номер элемента (индекс). Элементы массива нумеруются от 0.
Например:
Номер элемента
i
|
|
|
|
|
| Элементы массива
a
|
|
|
|
|
| Обращение к i–му элементу
| a[0]
| a[1]
| a[2]
| a[3]
| a[4]
|
Массивы обрабатываются поэлементно. Чтобы обратиться к каждому элементу используют циклы, в которых номер (индекс) элемента меняется от 0 количества элементов массива.
Пример. Вычислить сумму элементов массива
void main ( ) {
int i, sum;
int m [4] = { 3, 8, 4, 3 };
for ( i = 0; sum = 0; i< 4; i ++ )
sum + = m[i];
}
Инициализация элементов массива случайными значениями
Генератор случайных чисел предназначен для получения случайных чисел.
Для работы с генератором необходимо присоединить заголовочный файл < stdlib. h>.
Функция rand() возвращает псевдослучайное число в интервале от 0 до 32 767. Изменить интервал можно, используя деление по модулю. Например, получить число в интервале от 0 до 100 можно так: x=rand()%100.
Получить число в интервале от - 100 до 100 можно так: х= rand()%200-100.
Функция srand( int ) устанавливает исходное число для последовательности, генерируемой функцией rand().
Пример. Найти максимальный элемент массива, состоящего из 10 целых чисел в интервале от 0 до 100.
#include < stdio. h>
#include < stdlib. h>
void main ( )
{ const int n = 10;
int i, max;
int m [ n ];
for ( i = 0; i< n; i ++ ) //Заполнение массива случайными числами
m[i]=rand()%100;
max=m[0];
for ( i = 1; i< n; i + + )
if(max< m[i])max= m[i];
printf(“maximum=%d”, max); }
Задания
1.
| Заполнить массив А(100) случайными числами. Напечатать количество и сумму отрицательных элементов этого массива.
| 2.
| Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран сумму положительных элементов массива.
| 3.
| Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран количество четных элементов массива.
| 4.
| Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран количество элементов массива, кратных 7 и не кратных 3.
| 5.
| Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран количество элементов массива, значения которых лежат в интервале от 25 до 50.
| 6.
| Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран сумму четных положительных элементов массива.
| 7.
| Дан одномерный массив А(5). Элементы массива проинициализировать. Переставить элементы массива в обратном порядке.
Например:
Массив А: 10 12 43 56 7
Ответ:
Массив А: 7 56 43 12 10
| | 8.
| Заполнить массивы X(15) и Y(15), случайными числами. Получить все числа массива Y, которые не входят в массив Х.
Например:
Массив Х: 4 7 8 1 5 99 2 25 10 3
Массив Y: 2 6 1 7 3 4 5 37 99 1
Ответ: 6 5 37
| | 9.
| Заполнить массив C(15) случайными числами. Получить числа, взятые по одному из каждой группы равных членов и указать их количество (и количество элементов в группе).
Например:
Массив C: 6 89 4 3 6 1 8 1 3 6 2 9 3 8 5
Ответ: 6 – 3 раза
89 – 1 раз
4 – 1 раз
3 - 3 раза
1 - 2 раза
8 - 2 раза
2 – 1 раз
9 - 1 раз
5 – 1 раз
| | 10.
| Дан массив E(10). Значения элементов массива ввести с клавиатуры. Выяснить, сколько чисел входит в массив более чем по одному разу.
Например:
Массив C: 6 89 4 3 6 1 8 1 3 6 2 9 3 8 5
Ответ: 4 числа
| | 11.
| Даны 3 массива A(5), B(5) и C(5). Заполнить эти массивы случайными числами. Получить новый массив D по следующему правилу: D0=A0, D1=B0, D2=C0, D3=A1, D4=B2 и т. д.
Например:
Массив А: 1 2 3 4 5
Массив B: 10 20 30 40 50
Массив C: 11 22 33 44 55
Ответ:
Массив D 1 10 11 2 20 22 3 30 33 4 40 44 5 50 55
| | 12.
| Дан массив А(10). Заполнить массив случайными числами. Получить новый массив В по следующему правилу: В1=А1+А10, В2=А2+А9, и так далее.
Например:
Массив А: 1 8 2 9 3 5 4 15 7 2
Ответ:
Массив B: 3 15 17 13 8
| | 13.
| Дан массив А(10). Элементы массива проинициализировать. Найти и занести в L -максимальный, a в M – минимальный элемент из массива А. Получить в порядке возрастания все целые числа из интервала [M, L], которые не входят в массив А.
Например:
Массив А: 10 8 2 9 3 5 13 15 7 2
L =15
M = 2
Ответ:
4 6 11 12 14
| | 14.
| Дан массив R(5). Значения элементов массива ввести с клавиатуры. Найти сумму значений Ri – Rj, где 0< =i < j < =N.
Например:
Массив R: 10 5 4 3 8
Решение: (10-5)+(10-4)+(10-3)+(10-8)+(5-4)+(5-3)+(5-8)+(4-3)+(4-8)+(3-8).
Ответ: 12
| | 15.
| Даны число Х и массив Z(5). Тип элементов – вещественный. Элементы массива проинициализированы. Найти в последовательности Z два числа, среднее арифметическое которых ближе всего к Х.
Например:
Массив Z: 10 5 4 3 8
Х=7, 1
Решение:
(10+5)/2=7, 5
(10+4)/4=7
(10+3)/2=6, 5
(10+8)=9
(5+4)/2=4, 5
(5+3)=4
(5+8)/2=6, 5
(4+3)/2=3, 5
(4+8)/2=6
(3+8)/2=5, 5
Ответ: 10 и 4
| | 16.
| Заполнить массив А(100) случайными числами. Упорядочить элементы массива по возрастанию.
| | | | | |
|