#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);
{
sum=sum+arr[i][j];
}
}
}
printf("对角线元素之和是:%d\n",sum);
return 0;
}
输出:45
楼上两个都是对的;
if(i==j);
//这里加分号就把if执行结束了,并没有进行判断。
//因为sum+=arr[i][j]总是被执行,所以所有数都被加了。
如果按i==j这个判断执行的吧,只加了下标[0][0]的1 ,[1][1]的5 , [2][2]的9
所以一楼帮你把,[0][2]的3和[2][0]7加上了。
帮你改正确了,如下
#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)
{
sum=sum+arr[i][j];
}
}
}
sum=sum+arr[0][2];
sum=sum+arr[2][0];
printf("对角线元素之和是:%d\n",sum);
return 0;
}
if(i==j);
要去掉末尾的分号