为了账号安全,请及时绑定邮箱和手机立即绑定

为什么是sum+=arr[i][j]; 下面为什么还有sum+=[1][1];

 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;    
}


正在回答

3 回答

这其实就是找规律,她没有找全所以要手动加罢了,改成if((i+j)%2==0)就不用这样了。

3 回复 有任何疑惑可以回复我~

对角线 (1,1)这个坐标没表达

0 回复 有任何疑惑可以回复我~

因为里面的那个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];


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么是sum+=arr[i][j]; 下面为什么还有sum+=[1][1];

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信