求逆矩阵的问题,大家帮忙看一下
我下了一个求解逆矩阵的函数,运行发现全是零,大家帮忙看一下在哪里出错了。下面是我的代码   
 #include    <stdio.h>  
 #include    <math.h>  
 #include    <stdlib.h>  
 #include    <string.h>    
 double   b[9]; 
 double   a[9]={1,0,0,0,1,4,4,0,1};   
 int   gaus(double   a[],double   b[],int   n)   
       {   int   *js,l,k,i,j,is,p,q; 
             double   d,t; 
             js=(int   *)malloc(n*sizeof(int)); 
             l=1; 
             for   (k=0;k <=n-2;k++) 
                   {   d=0.0; 
                         for   (i=k;i <=n-1;i++) 
                               for   (j=k;j <=n-1;j++) 
                                     {   t=fabs(a[i*n+j]); 
                                           if   (t> d)   {   d=t;   js[k]=j;   is=i;} 
                                     } 
                         if   (d+1.0==1.0)   l=0; 
                         else 
                               {   if   (js[k]!=k) 
                                           for   (i=0;i <=n-1;i++) 
                                                 {   p=i*n+k;   q=i*n+js[k]; 
                                                       t=a[p];   a[p]=a[q];   a[q]=t; 
                                                 } 
                                     if   (is!=k) 
                                           {   for   (j=k;j <=n-1;j++) 
                                                       {   p=k*n+j;   q=is*n+j; 
                                                             t=a[p];   a[p]=a[q];   a[q]=t; 
                                                       } 
                                                 t=b[k];   b[k]=b[is];   b[is]=t; 
                                           } 
                               } 
                         if   (l==0) 
                               {   free(js);   printf( "fail\n "); 
                                     return(0); 
                               } 
                         d=a[k*n+k];