题目

从标准输入读入一个 3×3 的整数矩阵,计算并输出其主对角线(从左上到右下)上所有元素的和。

输入格式:共 3 行,每行包含 3 个整数,以空格分隔。

输出格式:输出一个整数,表示主对角线元素之和,末尾换行。

数据范围与约定:矩阵元素取值为 32 位有符号整数。

思路与算法

1. 二维数组与对角线坐标
主对角线上的元素行下标与列下标相等,即 a[0][0]、a[1][1]、a[2][2]。

2. 单层循环提取
读入 3×3 矩阵后,仅需单层循环 for (int i = 0; i < 3; i++) sum += a[i][i]; 即可完成累加,避免二次全矩阵遍历。

完整程序

#include <stdio.h>

int main(void)
{
    int a[3][3], sum = 0;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    // 主对角线特征:行标与列标相等(i == j)
    for (int i = 0; i < 3; i++) {
        sum += a[i][i];
    }

    printf("%d\n", sum);
    return 0;
}

运行示例

输入:

1 2 3
4 5 6
7 8 9

输出:

15