Cod sursa(job #1149963)

Utilizator superman_01Avramescu Cristian superman_01 Data 22 martie 2014 14:22:21
Problema Algoritmul lui Gauss Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <iomanip>
#define NMax 305
using namespace std;
ifstream fin("gauss.in");
ofstream fout("gauss.out");
int N,M;
double A[NMax][NMax],X[NMax];
void Read()
{
    fin>>N>>M;
    for(int i=1;i<=N;i++)
        for(int j=1;j<=M+1;j++)
            fin>>A[i][j];
}

void Solve()
{
    for(int i=1;i<=N;i++)
        {
            for(int k=i+1;k<=N;k++)
                for(int l=i+1;l<=M+1;l++)
                    A[k][l]-=A[i][l]*A[k][i]/A[i][i];
        }

    for(int i=N;i>0;i--)
        {
            double S=0;
            for(int j=i+1;j<=M;j++)
                {
                    S+=A[i][j]*X[j];
                }
            X[i]=(A[i][M+1]-S)/A[i][i];
        }

}

void Print()
{
    for(int i=1;i<=N;i++)
         fout<<fixed<<setprecision(10)<<X[i]<<" ";
    fout<<"\n";
}

int main()
{
    Read();
    Solve();
    Print();
    return 0;
}