别说了,先附上代码
#include
#include
using namespace std;
void print(double **a,int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n+1;j++)
{
printf("%.4lf ",a[i][j]);
}
cout<<endl;
}
}
void shunxu_G_S(double **a,int n)
{
/*先做消去*/
int k,i,j;
int c[n];
for(k=0;k<n-1;k++)
{
for (i = k + 1; i < n; i++)
c[i] = a[i][k] / a[k][k];
for(i=k+1;i<n;i++)
{
for(j=0;j<n+1;j++)
{
a[i][j]=a[i][j]-c[i]*a[k][j];
}
}
print(a,n);
cout<= 0; i--)
{
double sum = 0;
for (j = i + 1; j < n; j++)
{
sum += a[i][j] * x[j];
}
x[i] = (a[i][n] - sum) / a[i][i];
}
cout<<"方程组的解为"<<endl;
for(i=0;i<n;i++)
{
printf("%.4lf ",x[i]);
}
}
int main()
{
double **a;
int n;
cout << "输入系数矩阵的阶数n:" <> n;
cout << "依次输入增广矩阵的每一个元素A[i][j]:" << endl;
a = new double *[n];
for (int i = 0; i < n; i++)
a[i] = new double[n+1];
for (int i = 0; i < n; i++)
for (int j = 0; j > a[i][j];}
cout<<"中间过程的矩阵初等行变化: "<<endl;
shunxu_G_S(a,n);
return 0;
运行结果如下: