原题链接: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<stdio.h> int main() { int num[100][100]; int num1,num2,i,j; int n; int a=0,b=0,c=0; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&num[i][j]); if(i==j) a=num[i][j]+a; else if(i+j==n-1) b=num[i][j]+b; else if(i==(n-1)/2 && j==(n-1)/2 ) c=num[i][j]; } } printf("%d",a+b-c); return 0; }#include<stdio.h> int main() { int arry[20][20],i,j,zum=0,fum=0,sum,n; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&arry[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i==j) { zum=zum+arry[i][j]; } if(j==n-i-1) { fum=fum+arry[j][i]; } } } if(n%2==0) { sum=zum+fum; printf("%d",sum); }