文件详细信息
本文件的大小为 956 字节。
#include<algorithm>
#include<cmath>
#include<cstdio>
typedef double real;
const int maxn=105;
const real eps=1e-6;
int n;
real a[maxn][maxn];
int gauss(){
int row,col;
for(row=col=0;row<n;row++){
int t=col;
for(int i=col;i<n;i++)
if(fabs(a[i][row])>fabs(a[t][row]))
t=i;
if(fabs(a[t][row])<eps)continue;
for(int i=row;i<=n;i++)std::swap(a[t][i],a[col][i]);
for(int i=n;i>=row;i--)a[col][i]/=a[col][row];
for(int i=col+1;i<n;i++)
if(fabs(a[i][row])>eps)
for(int j=n;j>=row;j--)
a[i][j]-=a[col][j]*a[i][row];
col++;
}
for(int i=n-1;i>=0;i--)
for(int j=i+1;j<n;j++)
a[i][n]-=a[i][j]*a[j][n];
if(col<n){
for(int i=col;i<n;i++)
if(fabs(a[i][n])>eps)
return-1;
return 0;
}
return 1;
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<=n;j++)
scanf("%lf",a[i]+j);
int t=gauss();
if(t==1)
for(int i=0;i<n;i++)
printf("%.2lf\n",i+1,a[i][n]);
else puts("No Solution");
return 0;
}