解题思路:i,j->a[i][j]
n=3
对角线1:0,0+1,1+2,2
对角线2:0,2+1,1+2,0
总和=对角线1+对角线2-1,1;
n=4
对角线1:0,0+1,1+2,2+3,3
对角线2:0,3+1,2+2,1+3,0
总和=对角线1+对角线2;
n=5
对角线1:0,0+1,1+2,2+3,3+4,4
对角线2:0,4+1,3+2,2+3,1+4,0
总和=对角线1+对角线2-2,2;
得出
if(i==j){
sum+=(a[i][j]+a[i][n-1-i]);
}
注意事项:
当n为奇数需减去中心点数一次
参考代码:
int main(){
int n,i,j,sum=0,p,q;
scanf("%d",&n);
int a[n][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]+a[i][n-1-i]);
printf("%d,%d\n",a[i][j],a[i][n-1-i]);
}
}
}
p=n%2;
q=n/2;
if(p!=0){
sum=sum-a[q][q];
}
printf("%d",sum);
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复