懂C++的请看看这个程序,有什么错误?

来源:百度知道 编辑:UC知道 时间:2024/09/25 09:38:08
我想用高斯消去法来解线性方程组,这是我的程序,老是提示有一个错误,不知道为什么,请给我详细改一下:请高手看看:
#include<iostream.h>
void main()
{
int n;
cout<<"请输入要求的方程组的维数:";
cin>>n;
cout<<endl;
double x[n],a[n][n+1], A;
cout<<"请依次输入各个方程的x系数和常数:"<<endl;
for(int i=0;i<=n-1;i++)
{
for(int j=0;j<=n;j++)
{
cin>>A;
a[i][j]=A;
}

}
for(int e=0;e<=n-1;e++)
{
for(int f=1;f<=n-1-e;f++)
{
for(int h=e;h<=n;h++)
{
a[e+f][h]=a[e+f][h]*(a[e][e]/a[e+f][e])-a[e][h];
}

}

}
for(int r=0;r<=n-1;r++)
{
for(int q=1;q<=n-r-1;q++)
{
a[r][n]-=x[r+1]*a[r][r+q];
}
x[r]=a[r][n]/a[r][r];
}
for(int s=0;s<=n-1;s++)
{
cout<<"X"<<s+1<<"的值为:"<<x[s]<<endl;
}
}
请大家把握的错误的地方修改一下,我是初级学

2楼正解```可改如下:
double *x = new double[n];
double **a;
a = new double*[n];
for (int i=0; i<n; i++)
*a = new double[n];

double x[n],a[n][n+1], A;
这句写在最前面,要先定义后使用

double x[n],a[n][n+1], A ; 声明错误 数组的长度必须确定 此为静态数组 编译器编译时 对变量 n n+1 无法编译通过