Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР5.doc
Скачиваний:
15
Добавлен:
24.11.2018
Размер:
72.19 Кб
Скачать

Лабораторная работа №5 Использование массивов

Массив – это линейный тип данных или последовательность ячеек памяти одинакового типа. Массивы используются практически в любой программе. Массивы могут быть одномерными, двумерными и многомерными. Одномерные массивы соответствуют строке, двумерные – матрице.

5.1 Объявление массивов

При объявлении массива указывают тип его элементов и в квадратных скобках размер массива.

Для одномерного массива объявление запишется в виде:

int a[10];

Удобно использовать при объявлении массива директиву препроцессора #define:

#define SIZE 10 // определили поименованную константу, задающую

размер массива

void main()

{

int a[SIZE];

}

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

То есть для инициализации первого элемента массива единицей необходимо записать оператор:

a[0]=1;

Для работы с массивами обычно используют цикл for.

Инициализировать массив можно разными способами.

Если требуется можно инициализировать элементы массива сразу после объявления:

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Можно заполнить элементы массива непосредственно в программе:

int a[10];

a[5] = 5;

for (int i=0; i<10; i++)

a[i]=0;

В этом примере сначала шестому элементу массива присваивается значения пять, затем все элементы массива обнуляются.

Инициализация одномерного массива пользователем запишется в виде:

int a[10];

for (int i=0; i<10; i++) {

printf(″Введите значение a[%d]\n″, i);

scanf(″%d″, &a[i]);

}

В этом примере сначала элементам массива присваиваются значения введенные пользователем.

Рассмотрим пример нахождения количества отрицательных элементов массива.

int a[10], count;

for (int i=0; i<10; i++)

if (a[i]<0) count++;

Пример нахождения суммы отрицательных элементов массива.

int a[10], sum=0;

for (int i=0; i<10; i++)

if (a[i]<0) sum=sum+a[i];

Пример нахождения минимального элемента массива и его индекса.

int a[10], min, mini;

min=a[0];

for (int i=1; i<10; i++)

if (a[i]<min) {

min=a[i];

mini=i;

}

Другой способ нахождения минимального элемента массива и его индекса

min=0;

for (int i=1; i<10; i++)

if (a[i]<a[min]) {

min=i;

}

5.2 Использование многомерных массивов

При создании двухмерного массива после его имени ставится два значения – количество строк и столбцов:

int a[10][12];

Многомерные массивы инициализируются так же, как и одномерные. В следующем примере массив sqrs инициализируется числами от 1 до 10 и их квадратами:

int sqrs[10][2] = {

1, 1,

2, 4,

3, 9,

4, 16,

5, 25,

6, 36,

7, 49,

8, 64,

9, 81,

10, 100

};

Далее на примере показаны инициализация и вывод элементов двухмерного массива.

int a[10][20];

for (int i=0; i<10; i++)

for (int j=0; j<20; j++)

a[i][j] = 0; // инициализация массива нулями

for (int i=0; i<10; i++)

for (int j=0; j<20; j++)

if(i==j)

a[i][j] = 1; // инициализация главной диагонали

массива единицами

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

{

for (int j=0; j<20; j++)

printf(“%i”, a[i][j])

printf(“\n”); // вывод массива в матричном виде

}

Как можно видеть из листинга после инициализации массива главная диагональ заполняется единицами. Предлагается в качестве упражнения заполнить другую диагональ.