题目:
题目链接:高斯消元模板
题解:好好敲这个板子,很有用的!
代码:
#include<bits/stdc++.h>
using namespace std;
const int sea=110;
double a[sea][sea],ans[sea];
int n;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) for(int j=1;j<=n+1;j++) cin>>a[i][j];
for(int k=1;k<=n;k++)
{
int temp=k;
for(int i=k+1;i<=n;i++) if(fabs(a[i][k])>fabs(a[temp][i])) temp=i;
if(!a[temp][k]){puts("No Solution");return 0;}
if(k!=temp) swap(a[k],a[temp]);
double ins=a[k][k];
for(int i=1;i<=n+1;i++) a[k][i]/=ins;
for(int i=k+1;i<=n;i++)
{
ins=a[i][k];
for(int j=k;j<=n+1;j++) a[i][j]-=ins*a[k][j];
}
}
ans[n]=a[n][n+1];
for(int i=n-1;i>=1;i--)
{
ans[i]=a[i][n+1];
for(int j=i+1;j<=n;j++) ans[i]-=a[i][j]*ans[j];
}
for(int i=1;i<=n;i++) printf("%.2lf\n",ans[i]);
return 0;
}