Matrix 计算矩阵行列式

Matrix 计算矩阵行列式,matrix,determinants,Matrix,Determinants,我很惊讶为什么下面的算法告诉我,矩阵是不可逆的,我有输入单位矩阵,这是我的代码来计算teterminant float determinant(float a[5][5],float k) { float s=1,det=0,b[5][5]; int i,j,m,n,c; if(k==1){ return (a[0][0]); } else { det=0; for(c=0;c<k;c++)

我很惊讶为什么下面的算法告诉我,矩阵是不可逆的,我有输入单位矩阵,这是我的代码来计算teterminant

float determinant(float a[5][5],float k)
{
float s=1,det=0,b[5][5];
    int i,j,m,n,c;
    if(k==1){
        return (a[0][0]);
    }
    else
    {
        det=0;
        for(c=0;c<k;c++)

            m=0;
            n=0;
            for(i=0;i<k;i++)
            {
                for(j=0;j<k;j++){
                    b[i][j]=0;
                    if(i!=0 && j!=c)
                    {
                        b[m][n]=a[i][j];
                        if(n<(k-2))
                            n=n+1;

                        else{
n=0;
                        m++;

                    }



        }
    }

            }
            det=det+s*(a[0][c])*determinant(b,k-1);
            s=-1*s;
        }


   return det;
}
浮点行列式(浮点a[5][5],浮点k)
{
浮点数s=1,det=0,b[5][5];
int i,j,m,n,c;
如果(k==1){
报税表(a[0][0]);
}
其他的
{
det=0;

例如(c=0;c在尝试修复糟糕的格式设置时,我意识到您可能缺少了
for
循环的第一个
括号(使用
c