高斯消元模板
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=201;
typedef double Matrix[maxn][maxn];
void gauss(Matrix A,int n) //消元过程
{
int i,j,k,r;
for(i=0;i<n;i++)
{
r=i;
for(j=i+1;j<n;j++)
if(fabs(A[j][i])>fabs(A[r][i])) r=j;
if(r!=i)
for(j=0;j<=n;j++)
swap(A[r][j],A[i][j]);
for(j=n;j>=i;j--)
for(k=i+1;k<n;++k)
A[k][j]-=A[k][i]/A[i][i]*A[i][j];
}
for(i=n-1;i>=0;i--)
{
for(j=i+1;j<n;j++)
A[i][n]-=A[j][n]*A[i][j];
A[i][n]/=A[i][i];
}
}
Matrix A;
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
for(int j=0;j<=n;j++)
scanf("%lf",&A[i][j]);
gauss(A,n);
for(int i=0;i<n-1;i++) //A[i][n]就是所求的解
printf("%lf ",A[i][n]);
printf("%lf
",A[n-1][n]);
}
return 0;
}