为什么输出会是8.....

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

Donclow

2019-09-04 20:38

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

写回答 关注

2回答

  • 慕UI3423937
    2019-09-26 14:23:39

    条件判断用这个 我感觉简单点  

    小编这个最后还要加(1,1) 我写了个条件 不用加中心点

    if((i+j)%2==0)


    慕粉1329...

    同你的写法,看完答案感觉答案有点麻烦了

    2020-01-06 15:53:57

    共 1 条回复 >

  • Donclow
    2019-09-04 20:41: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==j || i+j==2)
               sum+=arr[i][j];
           }
          
          
          
          
        }
        printf("对角线元素之和是:%d\n",sum);
        return 0;   
    }怎么这就可以??


C语言入门

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

926026 学习 · 20793 问题

查看课程

相似问题