Многомерные массивы
Часть раздела Fundamentals путешествия по C на Coddy — урок 56 из 63.
Многомерный массив — это массив массивов. В языке C вы можете создать двумерный массив (самый распространенный вид многомерного массива), который, по сути, представляет собой таблицу со строками и столбцами.
Объявите двумерный массив:
int matrix[3][4];Это создает двумерный массив с 3 строками и 4 столбцами.
Вы можете инициализировать двумерный массив при его объявлении:
int matrix[3][4] = {
{1, 2, 3, 4}, // Первая строка
{5, 6, 7, 8}, // Вторая строка
{9, 10, 11, 12} // Третья строка
};Для доступа к элементам двумерного массива используйте два индекса:
int value = matrix[1][2]; // Доступ к строке 1, столбцу 2 (значение будет 7)Чтобы изменить элемент в двумерном массиве:
matrix[0][3] = 100; // Изменяет элемент в строке 0, столбце 3 на 100Вы также можете использовать вложенные циклы для доступа ко всем элементам двумерного массива:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n"); // Новая строка после каждой строки
}Задание
ЛегкоСоздайте функцию с названием printDiagonal, которая принимает двумерный квадратный массив (где количество строк равно количеству столбцов) и выводит элементы главной диагонали (от верхнего левого до нижнего правого угла).
Функция должна:
- Принимать целочисленный массив и его размер в качестве параметров.
- Выводить каждый элемент главной диагонали (где индекс строки равен индексу столбца).
- Разделять каждый элемент пробелом.
Например, для массива:
1 2 3 4 5 6 7 8 9
Функция должна вывести: 1 5 9
Шпаргалка
Многомерный массив — это массив массивов. В языке C вы можете создать двумерный массив со строками и столбцами.
Объявление двумерного массива:
int matrix[3][4];Инициализация двумерного массива при объявлении:
int matrix[3][4] = {
{1, 2, 3, 4}, // Первая строка
{5, 6, 7, 8}, // Вторая строка
{9, 10, 11, 12} // Третья строка
};Доступ к элементам с использованием двух индексов:
int value = matrix[1][2]; // Доступ к строке 1, столбцу 2 (значение будет 7)Изменение элемента:
matrix[0][3] = 100; // Изменяет элемент в строке 0, столбце 3 на 100Использование вложенных циклов для доступа ко всем элементам:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n"); // Новая строка после каждой строки
}Попробуйте сами
#include <stdio.h>
// Функция для вывода диагональных элементов квадратной матрицы
void printDiagonal(int matrix[][100], int size) {
// Напишите свой код здесь
}
int main() {
int size;
scanf("%d", &size);
int matrix[100][100];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
scanf("%d", &matrix[i][j]);
}
}
printDiagonal(matrix, size);
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
2Переменные
Типы данныхЦелые числаFloat и DoubleСимволыЛогический типКонстантыОсновы printfПравила именования переменныхПриведение типов. Часть 1Приведение типов. Часть 2Итоговое задание3Операторы
Арифметические операторыОператор остатка от деленияИнкремент и декрементОператоры присваиванияОператоры сравненияЛогические операторы. Часть 1Логические операторы. Часть 2Логические операторы. Часть 3Задание на повторение