Pagini recente » Cod sursa (job #404061) | Cod sursa (job #2807475) | Cod sursa (job #3207608) | Cod sursa (job #3001675) | Cod sursa (job #887647)
Cod sursa(job #887647)
#include<fstream>
using namespace std;
ifstream in("gauss.in");
ofstream out("gauss.out");
int n,m,i,j,k;
double a[305][305],r,sol[305];
int main()
{
in>>n>>m;
if (m>n)
{
out<<"Imposibil";
return 0;
}
for (i=1;i<=n;i++)
for (j=1;j<=m+1;j++)
in>>a[i][j];
for (i=1;i<n;i++)
{
if (a[i][i]==0)
{
out<<"Imposibil";
return 0;
}
for (j=i+1;j<=m+1;j++)
a[i][j]=a[i][j]/a[i][i];
a[i][i]=1;
for (j=i+1;j<=n;j++)
{
r=a[j][i];
a[j][i]=0;
for (k=i+1;k<=m+1;k++)
a[j][k]=a[j][k]-r*a[i][k];
}
}
for (i=m;i>=1;i--)
{
for (j=i+1;j<=m;j++)
a[i][m+1]-=(a[i][j]*sol[j]);
sol[i]=a[i][m+1]/a[i][i];
}
out.setf(ios::fixed,ios::floatfield);
out.precision(8);
for (i=1;i<=m;i++)
out<<sol[i]<<' ';
}