#include <stdio.h>
int main()
{
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int i,j;
int n;
int sum,sum1,sum2,sum3;
for(i=0;i<3;i++)
{
n=2-i;
sum1 +=arr[i][n]; //一条斜杠和
for(j=i;j<3;j++ )
{
if(i == j)
{
sum2 +=arr[i][j]; //另一条斜杠和
}
}
sum = sum1 + sum2 -arr[1][1]; //减去重复
}
printf("对角线元素之和是:%d\n",sum);
return 0;
}
嗯,你这个程序输出结果是对的。但是这样写可能好点。
#include <stdio.h>
int main()
{
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int i,j;
int sum=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j||i==(2-j))
sum+=arr[i][j];
}
}
printf("对角线元素之和是:%d\n",sum);
return 0;
}
sum1sum2sum3没有初始化