题目

读入 3×3 矩阵,求主对角线元素之和

思路

本题读入 3×3 矩阵,求主对角线上三个元素之和。

主对角线是行号与列号相同的位置:a[0][0]a[1][1]a[2][2]。循环 for (i=0;i<3;i++) sum+=a[i][i] 即每次取第 i 行第 i 列的一个数相加;不要加副对角线 a[i][2-i]

解题分析

副对角线是从右上到左下(如 a[0][2]a[1][1]a[2][0]),条件常写成 i+j==2,与主对角线 i==j 不同,本题不要加副对角线上的数。固定 3×3 时也可直接写 a[0][0]+a[1][1]+a[2][2]

完整程序

#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]);
        }
    }
    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