这是一个关于矩阵类的求行列式的代码,编译能通过但计算结果错误,我检查了N遍,没什么成果,请高手帮帮我,代码如下:
#include
class matrix
{
public:
matrix(int * Address,int i,int j);
bool isVector();
void print();
matrix operator+(matrix &);
matrix operator-(matrix &);
matrix operator*(matrix &);
friend matrix operator*(int a,matrix &);
int A();
int * operator[](int heightPos);
matrix T();
private:
int x,y;
int *p;
};
int * matrix::operator [](int heightPos)
{
return p+x*heightPos;
}
int matrix::A()//矩阵的行列式
{
int r=1;
int k;
matrix m=*this;
for(int i=0;i for(int j=i+1;j k=m[i][j]/m[i][i];
m[j][i]=0;
for(int n=i+1;n m[j][n]=m[j][n]-k*m[i][n];
}
}
}
for(int a=0;a for(int b=0;b if(a==b) r*=m[a][b];
}
}
return r;
}
我想问题应该是出在行列式的算法上
--------------------next---------------------
阅读(1677) | 评论(0) | 转发(0) |