가오스소거법
리네
질문 제목 :가오스 소거법 출력하는방법초기 배정값은 출력이 가능한데 결과값이 출력이 안됩니다질문 내용 : 어떻게 해야지 결과값이 나오는지 가르쳐주십시오.
while문 안에 넣을경우에는 무한반복을 하며 결과값이 깨져서 나옵니다.
#includeiostream
#includeiomanip
#includecmath
using namespace std;
int i,j,m,n,a;
float x,y,z,matrix[4][6];
void showmatrix();
void main()
{
cout주어진값을 입력하시오.endl;
for(i=0;i4;i++)
{
for(j=0;j6;j++)
{
cinmatrix[i][j];
}
coutendl;
}
showmatrix();
while(1)
{
a=0;
for(j=0;j6;j++)
{
if(matrix[0][j]0)
a++;
if(a==6)
break;
}
x=0;//변수
for(j=0;j6;j++)
{
if(matrix[0][j]0)
{
if(fabs(matrix[0][j])fabs(x))
{
x=matrix[0][j];
m=j;
}
}
}
x=10000;//변수
for(i=0;i4;i++)
{
if(matrix[i][m]0)
{
y=matrix[i][5]/matrix[i][m];
if(y=x)
{
x=y;
n=i;
}
}
}
//가오스소거법
z=matrix[n][m];
for(j=0;j6;j++)
{
matrix[n][j]=matrix[n][j]/z;
}
for(i=0;i4;i++)
{
if(i!=0)
{
y=matrix[i][m];
for(j=0;j6;j++)
{
matrix[i][j]=matrix[i][j]-(matrix[n][j]*y);//가오스소거법
}
}
}
}
}
void showmatrix()
{
coutsetprecision(2);
coutfixed;
for(i=0;i4;i++)
{
for(j=0;j6;j++)
{
coutsetw(10)matrix[i][j];
}
coutendl;
}
}