问答详情
源自:6-11 多维数组的遍历

用i+j的和来判断对角线的写法

#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==0)||(i+j==2)||(i+j==4))
           sum +=arr[i][j];
       }
    }
    printf("对角线元素之和是:%d\n",sum);
    return 0;    
}

个人认为比参考代码好那么一点点

提问者:sanjiaofeng 2015-07-09 16:26

个回答

  • 小小小丶小白
    2015-09-14 17:34:01

    当然此题可以if((i+j)%2==0) 4X4以上的矩形就不行了。

  • 小小小丶小白
    2015-09-14 17:28:50

    我错了 这样并不行 主要还是找i j 或者n上的关系,感觉更像数学题呢。

  • 小小小丶小白
    2015-09-14 17:24:22

    11行改成if((i+j)%2==0) 如果是一个庞大的矩阵, 这样算更好。

  • 小小小丶小白
    2015-09-14 17:22:29

    或者i+j之和除以2 余数为0

  • Magic振宏2013蓄势待发
    2015-09-11 15:55:28

    这个不错!