Kod napisany jest na podstawie pseudokodu ale pokazuje błędne wyniki, mógłby ktoś pomóc mi zlokalizować błąd?
#include <iostream>
using namespace std;
int main()
{
int n=5;
double M[n][n]={-4,3,0.5,4,-3,
-5,3,0.5,0.5,-4,
-4,4,-2,-5,4,
-2,-2,4,2,3,
0.5,-5,4,0.5,-3};
double W[n]={-4,-5,0.5,0.5,-2};
double suma;
for(int s=0;s<n-1;s++)
{
for(int i=s+1;i<n;i++)
{
for(int j=s+1;j<=n;j++)
{
M[i][j]=M[i][j]-M[i][s]/M[s][s]*M[s][j];
}
}
}
W[n]=M[n][n+1]/M[n][n];
for(int i=n-1;i>0;i--)
{
suma=0;
for(int s=i+1;s<n;s++)
{
suma=suma+M[i][s]*W[s];
}
W[i]=(M[i][n+1]-suma)/M[i][i];
}
for (int i=0;i<n;i++)
{
cout<<" x"<<i+1<<": "<<W[i]<<", ";
}
return 0;
}