C++new二维数组

来源:百度知道 编辑:UC知道 时间:2024/05/19 15:45:56
我定义了一个方程组的类 希望根据用户输入的方程阶数开辟用于存放系数的二维数组如下

class Equation
{
private:
double **vec,*b,*x;
int n;
public:
Equation(int);
~Equation();
void setV(); //从键盘输入系数
void setV(int); //从文件输入系数
void solve();
void show();
void print();
};

Equation::Equation(int t)
{
n=t;
int i,j;
vec=new double *[n];
for (i=0;i<n;i++)
vec[i]=new double[n];
for (i=0;i<n;i++)
for (j=0;j<n;j++)
vec[i][j]=0.0;
b=new double[n];
x=new double[n];
for (i=0;i<n;i++)
{
x[i]=0.0;
b[i]=0.0;
}
}

Equation::~Equation()
{
for (int i=0;i<n;i++)
delete[] vec[i];
delete vec;
delete[] b;
delete[] x;
}

void Equation::setV()
{
cout<<"please input "<<n<<'*'<<n<<" factors:"<<endl;
for (

编译提示说的很清楚

你的数字类型不是整型数据的 如果确实需要可以强制声明一下

if (vec[j][i]>vec[(int)t][i])

数组下标可以是 int型 和 long型 char型等
但不能是浮点型。。。。比如 float 和 double

呵呵 你的t是double型的
而 i和j是int型的
所以类型不正确
声明t这个变量没有用
你可以把(带t)这两句去了。