Pagini recente » Cod sursa (job #1104109) | Cod sursa (job #1252848) | Cod sursa (job #1778932) | Cod sursa (job #667563) | Cod sursa (job #1462709)
#include <fstream>
#include <iomanip>
#include <cmath>
#define Nmax 305
#define eps 0.00000001
using namespace std;
double a[Nmax][Nmax];
int n,m;
inline void SwapL(int l1, int l2)
{
if(l1==l2) return;
int i;
for(i=1;i<=m+1;++i) swap(a[l1][i],a[l2][i]);
}
int main()
{
int i,j,k;
double rap;
ifstream cin ("gauss.in");
ofstream cout ("gauss.out");
cin>>n>>m;
if(n<m)
{
cout<<"Imposibil\n"; return 0;
}
for(i=1;i<=n;++i)
for(j=1;j<=m+1;++j) cin>>a[i][j];
for(j=1;j<=m;++j)
{
for(i=j;i<=n && fabs(a[i][j])<eps;++i);
if(j==n+1)
{
cout<<"Imposibil\n"; return 0;
}
SwapL(i,j);
for(i=1;i<=n;++i)
if(i!=j)
{
rap=-(a[i][j]/a[j][j]);
for(k=1;k<=m+1;++k) a[i][k]+=rap*a[j][k];
}
}
cout<<setprecision(10)<<fixed;
for(i=1;i<=m;++i) cout<<(a[i][m+1] / a[i][i])<<" ";
cout<<"\n";
return 0;
}