Menu
CoddyTech

多维数组

本课属于 Coddy C 学习旅程的“基础知识”单元。第 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

亲手试试

#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 在线编译器