题目描述
输入一个5×5的数组,分别求其主对角线和辅对角线上元素之和。
输入
5×5的数组
输出
主对角线和辅对角线上元素之和
样例输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
样例输出
65 65
问题分析:
主对角线(红色)为从矩阵的左上角至右下角的连线,在数组中即指行列下标相同的元素:
行坐标i=列坐标j
辅对角线(黄色)为从矩阵的右上角至左下角的连线,这些元素的下标之间满足关系式:
行坐标i+列坐标j=n-1(就是4)。
循环遍历,判断坐标关系,用两个变量分别记录主、辅对角线之和。
代码实现:
#include<stdio.h>
const int n=5;
int main()
{
int sumz=0,sumf=0;
int a[6][6]={0};
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
if(i==j)
{
sumz+=a[i][j];
}
if(i+j==n-1)
{
sumf+=a[i][j];
}
}
}
printf("%d %d",sumz,sumf);
return 0;
}
运行结果:
欢迎批评指正!