为啥我的输出结果是20?

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

冷杉4869

2018-08-30 01:32

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

写回答 关注

5回答

  • 慕勒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

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

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题