- •1. Знакомство со средой программирования
- •2. Создание проекта
- •3. Простейшая программа на c, функция main()
- •3. Подключение дополнительных библиотек, функция printf
- •4. Переменные, типы переменных, литералы
- •5. Форматированный вывод
- •6. Считывание данных с консоли
- •7. Условный оператор if, условные операции.
- •7.1 Оператор else
- •8. Операторы цикла while, do … while, for
- •8.1 Цикл while
- •8.2 Цикл do … while
- •8.3 Цикл for
- •9. Массивы
- •9.1 Объявление массивов
- •9.2 Инициализация массивов
- •9.3 Многомерные массивы
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"); // конец строки массива, переход к следующей
}
}