```c
//3*3矩阵对角线之和
#include<stdio.h>
int main()
{
int a[3][3],sum=0,i,j,num=0;
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<=2;i++)
{
sum=sum+a[i][i];
}
/* for(i=2;i>=0;i--)
{
for(j=0;j<=2;j++)
{
num=num+a[i][j];
}
}
printf("%d %d",sum,num);
} */
/*.........*/这段输出另一个对角的数结果不对,还有个问题是我看其他人的代码为什么只有上一段如:
1 2 3
4 5 6
7 8 9,都只是计算1+5+9,而不计算3+5+7
这段输出另一个对角的数结果不对
===另一个对角线的特点是i+j=2,所以是
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
{
if(i+j==2)
sum+=a[i][j];
}
另外计算两条对角线之和的话,还需要去掉被重复添加的a[1][1]
即最后sum -= a[1][1];
供参考:
#include<stdio.h>
#define N 3
int main()
{
int a[N][N], sum = 0, i, j;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
scanf("%d", &a[i][j]);
if (i == j || i + j == N - 1)
sum += a[i][j];
}
}
printf("sum=%d", sum);
return 0;
}
//1 2 3
//4 5 6
//7 8 9
//sum = 25
占座