解题思路: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 人评分