Pagini recente » Cod sursa (job #2609443) | Cod sursa (job #2239700) | Cod sursa (job #2463581) | Cod sursa (job #608662) | Cod sursa (job #608665)
Cod sursa(job #608665)
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <iomanip>
#include <cmath>
#define DN 305
using namespace std;
ifstream f("gauss.in");
ofstream g("gauss.out");
int n,m;
double a[DN][DN],b[DN];
void bagaZero() {
double x;
for(int k=1; k<=n; ++k)
if(fabs(a[k][k])>=1.e-12)
for(int i=k+1; i<=n; ++i) {
x=a[i][k]/a[k][k];
for(int j=k+1; j<=m; ++j) a[i][j]=a[i][j]-a[k][j]*x;
b[i]=b[i]-b[k]*x;
}
else {
g<<"Imposibil";
exit(0);
}
}
void rezSsTr() {
double s;
b[n]=b[n]/a[n][n];
for(int i=n-1; 0<i; --i) {
s=b[i];
for(int j=i+1; j<=m; ++j) s-=(a[i][j]*b[j]);
b[i]=s/a[i][i];
}
}
int main()
{
f>>n>>m;
//if(n>m) g<<"Imposibil";
for(int i=1; i<=n; ++i) {
for(int j=1; j<=m; ++j) f>>a[i][j];
f>>b[i];
}
bagaZero();
rezSsTr();
for(int i=1; i<=m; ++i) g<<fixed<<setprecision(8)<<b[i]<<' ';
return 0;
}