矩阵求行列式
double det(double*M,int n)//M为矩阵的首地址,你为它的行数(列数){
double a1,a2,add1=0,add2=0,det_M=0;
int i,j,k;
if (n==1)
return det_M=M[0];
if (n==2)
return det_M=M[0]*M[3]-M[1]*M[2];
for(k=0;k<n;k++)
{
a1=1;
for(i=0,j=k;j<n;i++,j++)
a1*=M[i*n+j];
if(i!=j)
for(i=n-1,j=k-1;j>=0;i--,j--)
a1*=M[i*n+j];
add1+=a1;
}
for(k=0;k<n;k++)
{
a2=1;
for(i=n-k-1,j=0;i>=0;i--,j++)
a2*=M[i*n+j];
if((i+j)!=n+1)
for(i=n-k,j=n-1;i<n;i++,j--)
a2*=M[i*n+j];
add2+=a2;
}
det_M=add1-add2;
return det_M;
}
求4阶行列式就开始出错,为什么?该怎样写,求大神么指教。。。