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

为什么是%2???

能解释一下这个循环过程是怎么样的么?

提问者:瘦瘦的年轻人 2018-09-23 21:06

个回答

  • 伊亚
    2018-10-05 11:53:02

    123

    456

    789

    我们需要计算 1+3+5+7+9的值,也就是25.

    if(i%2==0 && j%2==0)  这个条件就是解决了 1+3+7+9

    为什么解决了这四个呢

    因为1的i和j都是0,0%2=0

    3的i也是0,而j是2,2%2=0

    同理7和9也可以满足if条件

    然后再使用sum += arr[1][1];

    加上中间的5.

    于是就可以完成计算了


  • 我是偶尔玩玩
    2018-09-25 18:37:52

               if(i==j||i+j==2){
                   sum+=arr[i][j];

  • 我是偶尔玩玩
    2018-09-25 18:37:05

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

  • 瘦瘦的年轻人
    2018-09-23 21:10:16

    如果是4阶矩阵的话%2不就没用了?4阶以上怎么办?