Menu
Coddy logo textTech

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

Часть раздела Основы путешествия по 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, которая принимает двумерный square-массив (где количество строк равно количеству столбцов) и выводит elements на main диагонали (от верхнего левого угла к нижнему правому).

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

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

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

1 2 3 4 5 6 7 8 9

Функция должна вывести: 1 5 9

Попробуйте сами

#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Проверьте себя

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

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор C