Pagini recente » Cod sursa (job #392222) | Cod sursa (job #725553) | Cod sursa (job #615000) | Cod sursa (job #1000245) | Cod sursa (job #623368)
Cod sursa(job #623368)
# include <cstdio>
# include <algorithm>
# define EPS 0.000000001
using namespace std;
float a[310][310],mx,c;
int m,n,i,j,t,k,q;
int main ()
{
freopen ("gauss.in","r",stdin);
freopen ("gauss.out","w",stdout);
scanf ("%d %d",&n, &m);
for (i=1; i<=m; i++)
{
for (j=1; j<=n+1; j++)
scanf ("%f ", &a[i][j]);
}
for (i=1; i<=min (n,m); i++)
{
mx=1;
if (a[i][i]<EPS && a[i][i]>-EPS)
{
{
mx=0;
for (t=i+1; t<=m; t++)
{
if (a[t][i]>mx)
{
mx=a[t][i];
q=t;
}
}
}
if (mx==0)
{
printf ("imposibil\n");
return 0;
}
for (k=1; k<=n+1; k++)
{
c=a[i][k];
a[i][k]=a[q][k];
a[q][k]=c;
}
}
for (j=n+1; j>=1; j--) a[i][j]=(float)a[i][j]/a[i][i];
for (j=i+1; j<=m; j++)
{
for (t=i+1; t<=n+1; t++)
a[j][t]=a[j][t]-a[j][i]*a[i][t];
}
}
for (i=n; i>=1; i--)
{
for (j=i+1; j<=n; j++)
{
a[i][n+1]-=(a[j][n+1]*a[i][j]);
}
}
for (i=1; i<=n; i++) printf ("%.8f ",a[i][n+1]);
return 0;
}