这个程序运行结果为啥S的值不对?

#include<stdio.h> void main() { int a[5][5]; int i,j,s=0,ch; printf("输入一个5*5行列式:\n"); for(i=0;i<5;i++) for(j=0;j<5;j++) { scanf("%d",&a[i][j]); } for(i=0;i<5;i++) for(j=0;j<i;j++) { ch=a[i][j]; a[i][j]=a[j][i]; a[j][i]=ch; } printf("转置行列式为:\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%3d",a[i][j]); printf("\n"); } for(i=0;i<5;i++) for(j=0;j<5;j++) if(i==j||i+j==4) s=s+a[i][j]; printf("%d\n",s-a[2][2]); }
做一个好码农
浏览 1241回答 1
1回答

望远

printf("%d\n",s-a[2][2]); 你这里多此一举减去了a[2][2],循环计算主副对角线之和的时候没有重复加上s[2][2]
打开App,查看更多内容
随时随地看视频慕课网APP