高斯消元法求找错误 谢谢各位大神
#include<stdio.h>double num[10][10];
double result;
double ca(int d,int n,int cou)
{
int a,b,c,e,flag;
double k;
if(d==n-1)
{
result=1;
for(a=0;a<n;a++)
result*=num[a][a];
if(result==0)
return 0;
else if(cou%2==0)
return result;
else if(cou%2!=0)
{
result=-result;
return result;
}
}
else
{
if(num[d][d]==0)
{
flag=1;
for(c=d+1;c<n;c++)
{
if(num[d][c]!=0)
{
for(e=0;e<n;e++)
{
k=num[e][d];
num[e][d]=num[e][c];
num[e][c]=k;
}
flag=0;
cou++;
}
}
if(flag==1)
return 0;
}
for(a=d+1;a<n;a++)
{
k=num[a][d]/num[d][d];
for(b=d;b<n;b++)
num[a][b]-=k*num[d][b];
}
ca(d+1,n,cou);
}
}
int main(void)
{
int a,b,c,n,m;
scanf("%d",&n);
for(a=1;a<=n;a++)
{
scanf("%d",&m);
for(b=0;b<m;b++)
for(c=0;c<m;c++)
scanf("%lf",&num[b][c]);
result=ca(0,m,0);
printf("%.0f\n",result);
}
return 0;
}