【问题描述】
对于一个N阶矩阵,分别按行、按列、按两对角线计算元素之和。
【输入形式】
先输入矩阵的阶数(不超过50),然后输入一个n阶矩阵。
【输出形式】
第一行输出按行计算出的元素之和,以一个空格分隔;
第二行输出按列计算出的元素之和,以一个空格分隔;
第三行、第四行分别输出左、右对角线计算出的元素之和。
【输入样例】
3 1 2 3 4 5 6 7 8 9
【输出样例】
6 15 24 (行之和) 12 15 18 (列之和) 15 (左对角线和) 15 (右对角线和)
【样例说明】
输入一个3阶矩阵,分别计算输出它的行,列和对角线的和
#include<stdio.h>
#define N 50
int main()
{
int x[N][N];
int n,i,j,a=0,b=0,c=0,d=0;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&x[i][j]);
for(i=0;i<n;i++)
{
for (j=0;j<n;j++)//因为计算行的结果,所以顺序是先i++再j++
a+=x[i][j];
printf("%d ",a);
a=0; //a要退到0为了下一轮计算
}
printf("\n");
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)//因为计算行的结果,所以顺序是先j++再i++
b+=x[i][j];
printf("%d ",b);
b=0;//b要退到0为了下一轮计算
}
printf("\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j)
c+=x[i][j];
if(i+j==n-1)
d+=x[i][j];
}
printf("%d\n%d\n",c,d);
return 0;
}