#include<iostream>
#include<iomanip>
class deter
{
int order;
double **_deter;
public:
deter(int);
~deter() { delete []_deter; }
deter(deter&);
void GetDeter();
void Display();
friend void Calculate(deter);
};
deter::deter(int n):order(n)
{
_deter=new double *[order];
for(int i=0;i<order;i++)
_deter[i]=new double[order];
}
deter::deter(deter &x)
{
order=x.order;
_deter=new double *[x.order];
for(int i=0;i<x.order;i++)
_deter[i]=new double[x.order];
for(int i=0;i<order;i++)
{
for(int j=0;j<order;j++)
{
_deter[i][j]=x._deter[i][j];
}
}
}
void deter::GetDeter()
{
cout<<"請輸入行列式"<<endl;
for(int i=0;i<order;i++)
{
for(int j=0;j<order;j++)
{
cin>>_deter[i][j];
}
}
}
void deter::Display()
{
for(int i=0;i<order;i++)
{
for(int j=0;j<order;j++)
{
cout<<setw(5)<<left<<_deter[i][j];
}
cout<<endl;
}
}
void Calculate(deter x)
{
double d;
double result=1;
for(int p=1;p<x.order;p++)
{
if(x._deter[p][p-1]==0)
continue;
else
{
for(int m=p;m<x.order;m++)
{
d=-x._deter[m][p-1]/x._deter[p-1][p-1];
for(int n=0;n<x.order;n++)
{
x._deter[m][n]+=d*x._deter[p-1][n];
}
}
}
}
for(int i=0;i<x.order;i++)
{
result*=x._deter[i][i];
}
cout<<"該行列式結果為"<<result<<endl;
}
void main()
{
int n;
cout<<"請輸入行列式階數"<<endl;
cin>>n;
deter a(n);
a.GetDeter();
cout<<"以下是您剛剛輸入的行列式"<<endl;
a.Display();
Calculate(a);
}
uj5u.com熱心網友回復:



求求大佬康下轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/20618.html
標籤:基礎類
上一篇:資料結構基本概念
