为了账号安全,请及时绑定邮箱和手机立即绑定

我这样好像很完美 只要是正方形就好了 改变行和列的时候也要改变数组元素

#include <stdio.h>

int main()

{

int m=3;int n=3;


    int arr[m][n] = {{1,2,3},{4,5,6},{7,8,9}};

    int i,j;

    int sum=0;

    

    if(m==n)

    {

        if(m%2!=0)

        {

            for(i=0;i<m;i++)

            {

                sum+=arr[i][i];

            }

            

            for(j=m-1;j>=0;j--)

            {

                sum+=arr[j][m-j-1];

            }

            

            sum-=arr[(m-1)/2][(m-1)/2];


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

        }   

else

{

for(i=0;i<m;i++)

        {

            sum+=arr[i][i];

        }


        for(j=m-1;j>=0;j--)

        {

            sum+=arr[j][m-j-1];

        }   

      

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


}

    }

    

    else

    {

    printf("不是正方形"); 

}


    return 0;    


}


正在回答

3 回答

赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞。

挺不错

0 回复 有任何疑惑可以回复我~

那你看这样呢?

#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||2-i == j||2-j == i)

           sum +=arr[i][j];

       }

    }

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

    return 0;    

}


0 回复 有任何疑惑可以回复我~

再试一次devc上成功了  网站上运行失败

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我这样好像很完美 只要是正方形就好了 改变行和列的时候也要改变数组元素

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信