Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++ лекции.doc
Скачиваний:
22
Добавлен:
21.04.2019
Размер:
536.06 Кб
Скачать

9.3 Многомерные массивы

Помимо обычных массивов (одномерных), существуют массивы двумерные, трехмерные и так далее. Двумерный массив проще всего представить, как таблицу:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

С точки зрения языка C правильнее представлять двумерный массив, как массив массивов:

[ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19 20], [21, 22, 23, 24, 25]]

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

Что бы создать двумерный массив в C необходимо написать не одну пару квадратных скобок, а две. Например:

int biarray[5][5];

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

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

Следующий пример создает двумерный массив размерностью, заданной с клавиатуры, заполняет его так, что в каждой ячейке хранится сумма её индексов, и выводит массив на экран:

#include <stdio.h>

int main() {

int n, m; // n - ширина (количество столбцов), m - высота (количество строк) массива

printf("Введите ширину массива: ");

scanf("%d", &n);

printf("Введите высоту массива: ");

scanf("%d", &m);

int array[n][m];

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

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

array[i][j] = i + j;

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

for (int j = 0; j < n; ++j) // вывод строки массива

printf("%d\t", array[i][j]);

printf("\n"); // конец строки массива, переход к следующей

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]