解题思路:
1.设元素下标为i,j ,矩阵阶数为Length,和为sum;

2.主对角线元素下标满足:i==j;

3.副对角线元素下标满足:i+j-1==Length;

4.输入一个元素Mxtrix,判断下标是否满足主副对角线元素下标条件,满足,sum加上这个数;

参考代码:

#include <stdio.h>

int main()
{
    int sum = 0, Length, Matrix;
    scanf( "%d", &Length );     //阶数

    for ( int i = 1; i <= Length; i++ )    //行
        for ( int j = 1; j <= Length; j++ )    //列
        {
            scanf( "%d", &Matrix );
            if ( (i == j) || (i + j - 1) == Length )   //判断
                sum += Matrix;          //求和
        }
    printf( "%d", sum );   //输出
    return(0);
}

别忘点赞哦-.-

点赞(22)
 

0.0分

62 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 24 条评论

斩魔的双双u 3年前 回复TA
#include <stdlib.h>
int main(int argc, char *argv[]){
	int a[10][10],i,j,sum=0,n;
	scanf("%d",&n);
	if(n>1){
		for(i=0;i<n;i++){
		    for(j=0;j<n;j++)
		    scanf("%d",&a[i][j]);}
	for(i=0;i<n;i++){
		sum=sum+a[i][i]+a[i][2-i];
		if(i==n-1-i){sum=sum-a[i][i];}
	}	
	printf("%d",sum);
	}
	else if(n==1)
	for(i=0;i<n;i++){
		for(j=0;j<n;j++)
		scanf("%d",&a[i][j]);}
	for(i=0;i<n;i++){
		for(j=0;j<n;j++)
		printf("%d",a[i][j]);}
		
	return 0;
}
jumpstones 4年前 回复TA
@MusicGeek 定义数组大小不能为变量
MusicGeek 4年前 回复TA
这样写哪里不对呢
#include<stdio.h>
int main( )
{
    int i,j,main=0,vice=0,n;
    int c[n][n];
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
        {
            scanf("%d",&c[i][j]);
            if (i==j)
            {
                main += c[i][j];
            }
            else if (i+j==n-1)
            {
                vice += c[i][j];
            }
        }
    }
    printf("%d",main+vice);
    return 0;
}
aptitude 4年前 回复TA
受教了