原题链接:C语言训练-求矩阵的两对角线上的元素之和
解题思路:
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);
}别忘点赞哦-.-
0.0分
62 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#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; }这样写哪里不对呢 #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; }