月落风起时


私信TA

用户名:uq_19102475415

访问量:1529

签 名:

就算从ling开始,每天都有收获就会快乐!

等  级
排  名 6432
经  验 1419
参赛次数 0
文章发表 3
年  龄 23
在职情况 学生
学  校
专  业

  自我简介:

普普通通平平凡凡。

解题思路:见注释

注意事项:见注释

参考代码:

#include <stdio.h>

#include <stdlib.h>


int main()

{

        int M;

        scanf("%d",&M);

        if(M<=0||M>10)  //要求矩阵阶数在[1,10]上,不在则结束程序.

                return -1; 

        int a[M][M];

        int i,j;

        for(i=0;i<M;i++){       //输入M阶矩阵

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

                        scanf("%d",&a[i][j]);

        }

        int sum1=0,sum2=0;

        for(i=0;i<M;i++){       //主对角线求和

                sum1+=a[i][i];

        }

        for(j=M-1,i=0;j>=0&&i<M;j--,i++){       //次对角线球和

                sum2+=a[j][i];

        }

        if(M%2==1)

                printf("%d\n",sum1+sum2-a[M/2][M/2]);   //奇数M阶矩阵减去中心数,因为多加了一次

        else

                printf("%d\n",sum1+sum2);       //      偶数M阶矩阵直接输出两对角线和的和

        return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »