这个程序运行结果为啥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]);
}
做一个好码农
浏览 1233回答 1
1回答
-
望远
printf("%d\n",s-a[2][2]); 你这里多此一举减去了a[2][2],循环计算主副对角线之和的时候没有重复加上s[2][2]
打开App,查看更多内容