原题链接: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> #include<string.h> #include<math.h> int main(){ int sum=0,n,a[10][10],i,j; scanf("%d",&n); 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++) { if(i==j) { sum+=a[i][j]; } if(i+j==n-1) { sum+=a[i][j]; } } } printf("%d",sum); } 这样为啥错了啊这样写为什么错啊 #include<stdio.h> int main(){ int a,b,c,d,sum=0; scanf("%d",&a); int n[a][a]; for(b=0;b<a;b++){ for(c=0;c<a;c++){ scanf("%d",&n[b][c]); } } for(b=0;b<a;b++){ c=0; sum+=n[b][c]; c++; d=a-1; sum+=n[b][d]; d--; } if(a%2!=0) sum-=n[(a-1)/2][(a-1)/2]; printf("%d",sum); }为什么运行错误啊(非法的内存访问,数组越界。。。) #include<stdio.h> int main(){ int n,a[10][10],sum=0; scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%d",&a[i][j]); if(i==j||i+j-1==n){ sum+=a[i][j]; } } } printf("%d",sum); return 0; }