Pagini recente » Cod sursa (job #2105385) | Cod sursa (job #2684820) | Cod sursa (job #2804757) | Cod sursa (job #1852117) | Cod sursa (job #1143117)
#include <fstream>
#include <cmath>
#include <cstdio>
#define eps 1e-10
using namespace std;
double r[309],a[309][309],x[309];
int n,m;
void transf(int k,int l,double coef)
{
int i,nr_0=0;
double ult;
for(i=1;i<=m;++i)
{
a[k][i]=a[k][i]-a[l][i]*coef;
}
r[k]=r[k]-r[l]*coef;
}
int main()
{
int i,j;
double coef;
ifstream f("gauss.in");
ofstream g("gauss.out");
f>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;++j)
f>>a[i][j];
f>>r[i];
}
if(n<=m)
{
for(i=n;i>0;--i)
{
for(j=n;j>0;--j)
if(j!=i)
{
coef=a[j][i]/a[i][i];
transf(j,i,coef);
}
}
for(i=1;i<=n;i++)
g<<r[i]/a[i][i]<<" ";
for(i=n+1;i<=m;i++)
g<<"0 ";
}
else
{
for(i=1;i<=m;++i)
for(j=1;j<=m;++j)
if(j!=i)
{
coef=a[j][i]/a[i][i];
transf(j,i,coef);
}
for(i=n+1;i<=m;++i)
{
for(j=1;j<=m;j++)
r[i]=r[i]-r[j]/a[j][j];
if(fabs(r[i])<eps)
{
g<<"Imposibil";
return 0;
}
}
for(i=1;i<=m;i++)
g<<r[i]/a[i][i]<<" ";
}
}