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

自己写的有点长。。

#include <stdio.h>
int main()
{
    int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
    int i,j;
    int n;
    int sum,sum1,sum2,sum3;
    for(i=0;i<3;i++)
    {
        n=2-i;
        sum1 +=arr[i][n];  //一条斜杠和
        for(j=i;j<3;j++ )
        {
            if(i == j)
            {
                sum2 +=arr[i][j];  //另一条斜杠和
            }
        }
    sum = sum1 + sum2 -arr[1][1];  //减去重复
    }
    printf("对角线元素之和是:%d\n",sum);
    return 0;    
}

提问者:菜菜狠厉害 2019-08-05 18:02

个回答

  • 小小疾飞
    2019-08-06 10:09:52

    嗯,你这个程序输出结果是对的。但是这样写可能好点。

    #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))

               sum+=arr[i][j];

           }

        }

        printf("对角线元素之和是:%d\n",sum);

        return 0;    

    }


  • 久肆
    2019-08-05 18:50:41

    sum1sum2sum3没有初始化