求大神帮我找找求线性方程组解程序的错误
#include<stdio.h>double ac(int n,double a[20][20]);
int main()
{
int i,j,k,n,h;
double a[20][20],b[20],x[20],m;
printf("请输入方程的阶数\n");
scanf("%d",&n);
printf("请按从上往下顺序输入方程对应的增广矩阵\n");
for(i=0;i<n;i++)
{
for(j=0;j<n+1;j++)
{
scanf("%lf",&a[i][j]);
}
}
m=ac(n,a);
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{b[k]=a[k][j];}
for(i=0;i<n;i++)
{
a[i][j]=a[i][n];
}
x[j]=ac(n,a);
for(k=0;k<n;k++)
{a[k][j]=b[k];}
}
printf("解依次为\n");
for(j=0;j<n;j++)
printf("%lf\t",x[0]);
return 0;
}
double ac(int n,double a[20][20])
{
int z,i,j;
double k,m=1;
for(z=0;z<n-1;z++)
for(i=z;i<n-1;i++)
{ if(a[z][z]==0)
for(i=z;a[z][z]==0;i++)
{
{
for(j=0;j<n;j++)
a[z][j]=a[z][j]+a[i+1][j];
}
if(a[z][z]!=0)break;
else m=0;
}
k=-a[i+1][z]/a[z][z];
for(j=z;j<n;j++)
a[i+1][j]=k*(a[z][j])+a[i+1][j];
}
for(z=0;z<n;z++)
m=m*(a[z][z]);
return m;
}