Menu
Coddy logo textTech

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

Часть раздела 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");  // Новая строка после каждой строки
}
challenge icon

Задание

Легко

Создайте функцию с названием printDiagonal, которая принимает двумерный квадратный массив (где количество строк равно количеству столбцов) и выводит элементы главной диагонали (от верхнего левого до нижнего правого угла).

Функция должна:

  1. Принимать целочисленный массив и его размер в качестве параметров.
  2. Выводить каждый элемент главной диагонали (где индекс строки равен индексу столбца).
  3. Разделять каждый элемент пробелом.

Например, для массива:

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;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals