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

为啥我的输出结果是20?

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

提问者:冷杉4869 2018-08-30 01:32

个回答

  • 慕勒4217424
    2018-08-30 17:08:59
    已采纳

    一个2X2的矩阵有两条对角线。i%2&&j%2的理由就是为了找出左右两条对角线,你少了5的原因就是正中间(arr[1][1])这个地方只加了一次。

  • q名字只是一个代号
    2018-09-10 19:52:56

    你这少了5是因为中间你一次也没加


  • 慕九幽
    2018-08-30 15:52:45

    去研究研究别人的答案

  • 慕九幽
    2018-08-30 15:52:44

    去研究研究别人的答案

  • 慕九幽
    2018-08-30 15:52:19

    ……你这算得不是对角线之和