这个代码我本来认为它比较简单,但我发现我错了,因为这个我也打了好久
【问题描述】
对于一个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>
int main()
{
int n,i,j,sum=0;
int a[20][20];
scanf("%d",&n);//输入n,代表矩阵的阶数
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++)
{
sum=sum+a[i][j];
}
printf("%d ",sum);
sum=0;
}
printf("\n");
for(j=0;j<n;j++)//对矩阵每列求和
{
for(i=0;i<n;i++)
sum=sum+a[i][j];
printf("%d ",sum);
sum=0;
}
printf("\n");
for(i=0;i<n;i++)//对矩阵左对角线求和
sum=sum+a[i][i];
printf("%d\n",sum);
sum=0;
for(i=0,j=n-1;i<n;i++,j--)//对矩阵右对角线求和
sum=sum+a[i][j];
printf("%d\n",sum);
return 0;
}