Menu
Coddy logo textTech

多次元配列

CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 56/63。

多次元配列は、配列の配列です。C言語では、2次元配列(最も一般的な多次元配列)を作成できます。これは本質的に、行と列を持つテーブルです。

2次元配列を宣言します:

int matrix[3][4];

これにより、3行4列の2次元配列が作成されます。

2次元配列を宣言時に初期化することができます:

int matrix[3][4] = {
    {1, 2, 3, 4},    // 1行目
    {5, 6, 7, 8},    // 2行目
    {9, 10, 11, 12}  // 3行目
};

2次元配列の要素にアクセスするには、2つのインデックスを使用します。

int value = matrix[1][2];  // 行1、列2にアクセスします(値は7になります)

2次元配列の要素を修正するには:

matrix[0][3] = 100;  // 行0、列3の要素を100に変更します

また、入れ子になったループを使用して、2次元配列のすべての要素にアクセスすることもできます:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // 各行の後に改行
}
challenge icon

チャレンジ

簡単

2次元の正方行列(行数と列数が等しい配列)を受け取り、主対角線(左上から右下)にある要素を表示する、printDiagonalという名前の関数を作成してください。

この関数は以下のことを行う必要があります:

  1. 整数配列とそのサイズをパラメータとして受け取ります。
  2. 主対角線上にある各要素(行のインデックスと列のインデックスが等しい場所)を表示します。
  3. 各要素をスペースで区切ります。

例えば、以下の配列が与えられた場合:

1 2 3 4 5 6 7 8 9

関数は次のように表示する必要があります:1 5 9

チートシート

多次元配列は、配列の配列です。C言語では、行と列を持つ2次元配列を作成できます。

2次元配列を宣言する:

int matrix[3][4];

宣言時に2次元配列を初期化する:

int matrix[3][4] = {
    {1, 2, 3, 4},    // 1行目
    {5, 6, 7, 8},    // 2行目
    {9, 10, 11, 12}  // 3行目
};

2つのインデックスを使用して要素にアクセスする:

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のすべてのレッスン