#include <iostream>
using namespace std;
int main()
{
double **a = new double *[100];
int n,N;
cout<<"palease input the number of unkown variable and the number of equals:"<<endl;
cin>>n>>N;
double *x = new double[n+1];
double m ;
//initialized the X
for(int i = 1; i <= n; i++ )
x[i] = 0;
//create the equation set (A,b)
for(i = 1; i <= n;i++)
{
a[i] = new double[n+2];
for(int j = 1; j <= n+1; j++)
cin>>a[i][j];
}
//eliminate the equation set(n-1 times )
for(int k = 1; k < n; k++)
{
for(int t = k; t < n; t++)
{
m = (1.0*a[t+1][k])/a[k][k];
cout<<"m is "<<m<<endl;
for(int i = 1; i <= n+1; i++)
{
a[t+1][i] = a[t+1][i] - m*a[k][i];
}
}
}
//iterate the equation set
x[n] = a[n][n+1]/a[n][n]; //求解Xn
for(i = n-1; i >= 1; i--)
{
double tmp = 0;
for(int j = i+1; j <= n; j++ )
{
tmp += a[i][j]*x[j];
}
x[i] = a[i][n+1] - tmp;
}
cout<<"the equation set is "<<endl;
for(i = 1; i <= n; i++)
{
for(int j = 1; j <= n+1; j++)
cout<<a[i][j];
cout<<endl;
}
cout<<"resulting is "<<endl;
//resulting....
for(i = 1; i <= n; i++)
{
cout<<"x is "<<x[i]<<endl;
}
return 0;
}