题目
从标准输入读入一个 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