Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2340939
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:47

这是一个关于矩阵类的求行列式的代码,编译能通过但计算结果错误,我检查了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) |
给主人留下些什么吧!~~