|
|||
тип имя_массива[количество_элементов];тип имя_массива[количество_элементов]; тип имя_массива[количество_элементов n] = {значение_элемента_0, значение_элемента_1, … значение_элемента_n-1}; Пример. Объявление одномерного массива int mas1[10]; int mas2[4] = {10, 2, 13, 7};
Для перебора элементов массива необходимо организовать цикл. Чтобы было удобно работать с массивами, можно вводить константы.
Пример. Подсчет суммы и среднего арифметического элементов одномерного массива #include < stdio. h> #include < stdlib. h> #define N 4
void main() { int mas1[N] = {10, 2, 15, 7}; int sum=0, i; float sr; for (i=0; i< N; i++) { sum+=mas1[i]; } printf(" Summa = %d\n", sum); //вывод результата, равного 32 sr=sum/N; //при целочисленном делении дробная часть отбрасывается, //поэтому необходимо приведение суммы к вещественному типу printf(" Srednee = %6. 3f", sr); //вывод результата, равного 8. 000 sr=(float)sum/N; // приведение суммы к вещественному типу и подсчет результата printf(" Srednee = %6. 3f", sr); //вывод результата, равного 8. 500 }
Пример. Заполнение и вывод одномерного массива #include < stdio. h> #define N 5
void main() { int mas1[N]; int i; for (i=0; i< N; i++) { mas1[i] = i+3; //заполнение массива значениями от 3 до N-1+3 } for (i=0; i< N; i++) { printf(" %d\n", mas1[i]); //вывод элементов массива: 3 4 5 6 7 } }
Для заполнения массива случайным образом необходимо: 1. для привязки генератора псевдослучайных чисел к моменту времени вызвать функцию srand(). В качестве ее параметра указать time(0). 2. при заполнении массива вызывать функцию rand(), генерирующую псевдослучайные числа.
Функция rand() генерирует число от 0 до 65 535. Для уменьшения диапазона используется нахождение остатка от деления (%). Значение выражения rand()%30 находится в диапазоне от 0 до 29. Для смещения этого диапазона применяется сложение или вычитание в зависимости от того, какой диапазон необходимо получить. Так значение выражения rand()%30-15 находится в диапазоне от -15 до 14.
Пример. Заполнение массива случайными значениями #include < stdio. h> #include < stdlib. h> #include < time. h> //не забыть подключить эту библиотеку #define N 10
void main() { srand(time(0)); int mas1[N]; int i; for (i=0; i< N; i++) { mas1[i] = 15+rand()%30; //заполнение массива значениями от 15 до 44 } for (i=0; i< N; i++) { printf(" %d\n", mas1[i]); //вывод элементов массива } }
Для заполнения массива символами необходимо в указанный пример внести следующие изменения: 1. объявить массив символов: char mas1[N]; 2. генерировать коды символов в соответствии с таблицей ASCII 3. на экран выводить символы: printf(" %с\n", mas1[i]);
Пример. Поиск максимального элемента в массиве #include < stdio. h> #include < stdlib. h> #include < time. h> #define N 10
void main() { srand(time(0)); int mas1[N]; int Max, i; for (i=0; i< N; i++) { mas1[i] = 15+rand()%30; //заполнение массива значениями от 15 до 44 } for (i=0; i< N; i++) { printf(" %d\n", mas1[i]); //вывод элементов массива } Max=mas1[0]; //задание переменной Max начального значения for (i=1; i< N; i++) //поиск максимального элемента { if (mas1[i]> Max) { Max=mas1[i]; } } printf(" Max = %d\n", Max); //вывод значения максимального элемента }
Работа с двумерными массивами
Объявление двумерного массива выглядит так:
|
|||
|