为什么得出18

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

月近人

2019-03-16 18:15

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

写回答 关注

3回答

  • 咧咧咧咧
    2019-05-22 13:24:12

    你的逻辑表达式写的有问题

    if(i==j||(i==0&&j==2)||(i==2&&j==0))

    这样就对了

    “,”

    ,

    逗号运算符

    表达式,表达式,…

    左到右

    从左向右顺序结合

    而这里因该用逻辑中的&&,表示当i==0同时j==2。

    2019-03-26

    举报 回复  0


    除了表达式,应该有五个点,还有两个点没加,(0,0)(2,2)

    2019-04-10


  • 长得帅活得久
    2019-04-10 15:29:26

    除了表达式,应该有五个点,还有两个点没加,(0,0)(2,2)

  • 慕容3376081
    2019-03-26 16:45:42

    你的逻辑表达式写的有问题

    if(i==j||(i==0&&j==2)||(i==2&&j==0))

    这样就对了

    “,”

    ,

    逗号运算符

    表达式,表达式,…

    左到右

    从左向右顺序结合

    而这里因该用逻辑中的&&,表示当i==0同时j==2。

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题