#include<iostream>
#include<math.h>
using namespace std;
double a[100][100];
int n;
void gaosi()
{
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=i;
for(j=i;j<=n;j++)
{
double w;
w=a[i][j];a[i][j]=a[r][j];a[r][j]=w;
}
for(j=i+1;j<=n;j++)
{
double f;
f=a[j][i]/a[i][i];
for(k=i;k<=n;k++)
a[j][k]-=f*a[i][k];
}
}
for(i=n-1;i>=0;i--)
{
for(k=i+1;k<n;k++)
a[i][n]-=(a[i][k]*a[k][n]);
a[i][n]/=a[i][i];
}
}
int main()
{
int i,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%lf",&a[i][j]);
for(i=0;i<n;i++)
scanf("%lf",&a[i][n]);
gaosi();
for(i=0;i<n;i++)
printf("x%d: %g\n ",i+1,a[i][n]);
return 0;
}
这段代码求的是 线性方程组 比如说
2x+y-z=8
-3x-y+2z=-11
-2x+y+2z=3
求 x y z
先输入有多少个未知数n 再有n行 输入每个未知数前的系数 系数为0 的 就输入0
最后一行输入 每个方程的 最右边是常数
实际上就是 不断的加减消元。。