Problem H: 矩阵对角线求和
Description
输入一个n×n的整数矩阵,分别计算两个对角线的和。
Input
输入矩阵的阶数n(n≤10),另起一行后输入一个n×n的整数矩阵,每列数据用空格隔开,每行数据用回车分隔。
Output
输出主对角线和副对角线的和。
Sample Input
3
1 2 3
3 2 1
9 7 8
Sample Output
11 14
#include<stdio.h>
int main()
{
int n,m,i,j,k,a[30][30],b[30];
while(scanf("%d",&n)!=EOF)
{
int sum1=0,sum2=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=i;j<i+1;j++)
{
sum1+=a[i][j];
}
}
for(i=0;i<n;i++){
for(j=n-1-i;j>n-2-i;j--)
sum2+=a[i][j];
}
printf("%d ",sum1);
printf("%d\n",sum2);
}
return 0;
}
另一种写法
#include<stdio.h>
int main()
{
int n,a[10][10];
scanf("%d",&n);
int i,j,sum1=0,sum2=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j)
sum1+=a[i][j];
if(i+j==n-1)
sum2+=a[i][j];
}
}
printf("%d %d\n",sum1,sum2);
return 0;
}
总结
1、思考清楚行与列的数学关系,以及变量之间的联系。