关于多维数组遍历求对角线之和,求教

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

love1314

2016-10-19 22:17

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

    { 

        int sum1=0;

        int sum2=0;

       for(j=0;j<3;j++)

       

       {

          

           if(i==j)

           {

               sum1=sum1+arr[i][j];

        }

           else if(i+j==2||i!=j)

           {

               sum2=sum2+arr[i][j];

           }

           

       }

       

       sum=sum1+sum2;

    

    }

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

    return 0;    

}

不知道怎么改。求高手··谢谢

写回答 关注

3回答

  • JustWannaHugU
    2016-10-20 17:02:43
    已采纳
    #include <stdio.h>
    int main()
    {
        int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
        int sum=0;
        int sum1=0;
        int sum2=0;
        int i,j;
        for(i=0;i<3;i++)
        { 
            
           for(j=0;j<3;j++)
           
           {
               if(i==j)
               {
                   sum1+=arr[i][j];
           	   }
               else if(i+j==2)
               {
                   sum2=sum2+arr[i][j];
               }
               
           }
           
           sum=sum1+sum2;
        
        }
        printf("对角线元素之和是:%d\n",sum);
        return 0;    
    }


    love13...

    非常感谢!

    2016-10-31 10:40:18

    共 1 条回复 >

  • ClausKE
    2016-10-20 16:49:30


    #include <stdio.h>
    int main()
    {
        int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
        int i,j;
        int sum=0;
        int sum1=0;
        int sum2=0;//这里的sum1和sum2的赋值应在第一个for循环之外
        for(i=0;i<3;i++)
        {
           for(j=0;j<3;j++)
           {
               if(i==j)
               {
                   sum1=sum1+arr[i][j];
                }
               else if(i+j==2&&i!=j)
               {
                   sum2=sum2+arr[i][j];
               }
           }
           sum=sum1+sum2;
        }
        printf("对角线元素之和是:%d\n",sum);

       

    闲时弄月

    为什么sum1和sum2赋值位置要在第一个for前面????、

    2016-12-29 22:54:18

    共 2 条回复 >

  • 慕粉3908853
    2016-10-20 16:44:19

    有俩条对角线,你排出来就懂了,矩阵么,对角线和为(i+j)%2=0,像a[0][0]和a[0][2]都在对角线上,分别是正对角线和反对角线

C语言入门

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

926026 学习 · 20793 问题

查看课程

相似问题