C++ 矩阵n×n的判定

C++ 矩阵n×n的判定,c++,cycle,C++,Cycle,谁能告诉我我的错误 行列式不正确 我在一张纸上做了一个测试,答案是正确的 我相信我的错误可能就在这段时间里,在Matriz[I+1][j]=Matriz[I+1][j]-Matriz[fila][j]*Matriz[I+1][0]/Matriz[fila][fila]这一行中;但我的测试是正确的 #include <iostream> #include <stdio.h> using namespace std; class Matriznxm{ private:

谁能告诉我我的错误

行列式不正确

我在一张纸上做了一个测试,答案是正确的

我相信我的错误可能就在这段时间里,在Matriz[I+1][j]=Matriz[I+1][j]-Matriz[fila][j]*Matriz[I+1][0]/Matriz[fila][fila]这一行中;但我的测试是正确的

#include <iostream>
#include <stdio.h>

using namespace std;

class Matriznxm{

private:

    int n,m;
    float **Matriz;

public:


    Matriznxm(int f, int c){

        n = f;
        m = c;
        Matriz = new float *[n];

            for (int i=0; i<n; i++){

                Matriz[i]=new float [m];
            }

        for(int i=0; i<n; i++){

            for(int j=0; j<m; j++ ){

                Matriz[i][j]=0.0;

            }

        }
    }


    void llenarMatriz(){

        for(int i=0; i<n; i++){

            for(int j=0; j<m; j++){

                cout << "\nMatriz ["<<i+1<<"]["<<j+1<<"]: ";
                cin >> Matriz[i][j];

            }

        }

    }

    void mostrarMatriz(){

        for(int i=0; i<n; i++){


            for(int j=0; j<m; j++){


                cout << Matriz[i][j]<< "  ";

            }
            cout << "\n";
        }

    }


    int determinante(){

        float det = 1.0;
        int fila = 0;


        while(fila < n-1){

            for(int i=fila; i<n-1; i++){

                for(int j=fila; j<m; j++){


                    Matriz[i+1][j] = (Matriz[i+1][j] - (Matriz[fila][j]*(Matriz[i+1][0]/Matriz[fila][fila])));  

                }

            }


            fila++;

        }


        for (int i=0; i<n; i++){

            det= det * Matriz[i][i];

        }




        return det;
    }
})

int main{

int n,m;

cout<<"\nNumero de Filas y Columnas: ";
cin >> n;
cout << "\n\n\n";
m=n;

Matriznxm m1(n,m);

m1.llenarMatriz();
m1.mostrarMatriz();

cout << "\nEl determinante es: "<< m1.determinante() <<"\n\n";
m1.mostrarMatriz();



return 1;

}

哪个答案是正确的,什么是示例,什么是输入,什么是输出?您应该在算法的每个步骤、断点和步骤计算值,以检查这些值,并找出错误所在。您是否知道,只有假设矩阵nxm,不是mxn?你知道OP的类名是:Matriznxm这是矩阵nxn的正确公式,我在书和其他链接中检查了这个公式,是三角形矩阵公式。
#include <iostream>
using namespace std;
int main()
{
    int siz;
    cout<< "enter the size of you matrix AxA\nA = ";
    cin >>siz;
    int mat[siz][siz],rez=0,rezA=1,rezB=1;
    for(int i=0;i<siz;i++)
        for(int j=0;j<siz;j++)
            cin >> mat[i][j];
    for(int t=0;t<siz;t++){
        for(int i=0;i<siz;i++)
        {
            rezA = rezA *mat[i][i+t>siz-1?(i+t-siz):i+t];
            rezB = rezB *mat[i][siz-t-1-i<0?(2*siz-t-1-i):(siz-t-1-i)];
        }
        rez  = rez + (rezA - rezB);
        rezA =rezB = 1;
    }
    cout <<endl<<"The Determinat is : "<<rez;
    return 0;
}