Mai intai trebuie sa te autentifici.
Cod sursa(job #1555009)
| Utilizator | Data | 22 decembrie 2015 09:29:24 | |
|---|---|---|---|
| Problema | Algoritmul lui Gauss | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.01 kb |
#include <cstdio>
using namespace std;
float a[301][301], sol[301], x;
int poz[301], n, m;
int main()
{
int i, j, k;
freopen("gauss.in","r",stdin);
freopen("gauss.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=1; i<=n; i++)
for (j=1; j<=m+1; j++) scanf("%f",&a[i][j]);
if (m>n) {printf("Imposibil"); return 0;}
for (j=1; j<=m; j++)
{
for (i=1; i<=n; i++)
{
if (a[i][j]!=0 && poz[i]==0)
{
poz[i]=j;
break;
}
}
if (i==n+1) {printf("Imposibil"); return 0;}
}
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
if (j==i) continue;
x=a[i][poz[i]]/a[j][poz[i]];
for (k=1; k<=m+1; k++)
{
a[j][k]=a[i][k]-x*a[j][k];
}
}
}
for (i=1; i<=n; i++)
{
sol[i]=a[i][m+1]/a[i][poz[i]];
printf("%.8f ",sol[i]);
}
return 0;
}
