qq_南风知我譩丷_0
2017-11-07 22:31
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%2==0&&j%2==0)
{
sum+=arr[i][j];
}
}
}
sum+=arr[1][1];
printf("对角线元素之和是:%d\n",sum);
return 0;
}
这其实就是找规律,她没有找全所以要手动加罢了,改成if((i+j)%2==0)就不用这样了。
对角线 (1,1)这个坐标没表达
因为里面的那个sum+=arr[i][j];的前提条件就是 if(i%2==0&&j%2==0),i%2==0&&j%2==0表示数组的两个下标除以2余数都为0。所以实际上里面的sum+=arr[i][j]只是包含了arr[0][0]和arr[2][2]的值,要求对角线的和,就要在把arr[1][1]加上,这就是为什么
下面为什么还有sum+=[1][1];
C语言入门
926025 学习 · 20793 问题
相似问题