数组转换后的主副对角线元素之和为什么会不对, 程序如下

#define N 5#include<stdio.h>int main(){ int i,j,a[N][N],s1,s2,temp; for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(i=0,j=0;i<N;i++,j++) s1+=a[i][j]; for(i=0,j=4;i<N;i++,j--) s1+=a[i][j]; s1-=a[2][2]; for(i=0;i<5;i++) {for(j=i;j<5;j++) {temp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp;} } for(i=0,j=0;i<N;i++,j++) s2+=a[i][j]; for(i=0,j=4;i<N;i++,j--) s2+=a[i][j]; s2-=a[2][2]; printf("转置后的数组:尀n"); for(i=0;i<N;i++) {for(j=0;j<N;j++) printf("%-4d",a[i][j]); printf("尀n");} printf("转置前主副对角线上元素之和:"); printf("%d尀n",s1); printf("转置后主副对角线上元素之和:"); printf("%d尀n",s2);}
2026年09月24日 13:36
有1个网友回答
网友(1):

公式,我不知道, 没法写啊. 其他这种东西,就是把你的想法写出来就行了.
比如 方阵可以这样:
int list[3][4] = { //三行四列方阵
11,12,13,14
21,22,23,24,
31,32,33,34
}

list[0][1] * list[1][3] * list[2][2] = 12*24*33;
具体的,你自己套公式吧