#include<iostream>
#include<cstdio>
#include<cmath>
#define N 105
using namespace std;
double A[N][N];
int n;
void Guass(){
for(int i=1;i<=n;i++){
int r=i;
for(int j=i+1;j<=n;j++)
if(fabs(A[j][i])>fabs(A[i][i])) r=j;
if(r!=i) for(int j=1;j<=n+1;j++) swap(A[i][j],A[r][j]);
for(int j=i+1;j<=n;j++){
double f=A[j][i]/A[i][i];
for(int k=i;k<=n+1;k++) A[j][k]-=f*A[i][k];
}
}
for(int i=n;i>=1;i--){
for(int j=i+1;j<=n;j++)
A[i][n+1]-=A[j][n+1]*A[i][j];
A[i][n+1]=A[i][n+1]/A[i][i];
}
}
int main(){
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n+1;j++)
scanf("%lf",&A[i][j]);
Guass();
for(int i=1;i<n;i++) {
int x=(int)(A[i][n+1]+0.5);
printf("%d ",x);
}
int x=(int)(A[n][n+1]+0.5);
printf("%d\n",x);
return 0;
}
【模板】高斯消元
最新推荐文章于 2024-08-11 18:02:00 发布