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

来源:6-11 多维数组的遍历

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


写回答 关注

3回答

  • pkcorn
    2017-11-17 14:34:05

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

  • qq_蝶梦_1
    2017-11-07 23:42:57

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

  • qq_莫非
    2017-11-07 23:10:55

    因为里面的那个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语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926025 学习 · 20793 问题

查看课程

相似问题