행렬식 함수!! 도와주세요~~~~
다힘
질문 제목 : MTYPE cofactor(MTYPE *mat, int size, int i, int j); // i행 j열에 대한 여인수
MTYPE determinant(MTYPE *mat, int size); // 행렬식
MTYPE* MinorMat(MTYPE *majorMat, int size, int row, int col); // i행 j열에 대한 소행렬 구하기
MTYPE* GetNewMatrix(int size); // 표준입력으로 행렬 얻기
void PrintMatrix(MTYPE *mat, int size); // 행렬 표준출력하기
void main()
{
int size;
MTYPE *myMat; // 새로운 행렬 생성
printf(** 몇 차 행렬? : );
scanf(%d, &size);
printf(** %d x %d 행렬을 입력 , size, size);
printf((%d개의 값을 빈칸(또는 엔터)으로 구분하여 입력.)\n, size*size);
myMat = GetNewMatrix(size);
PrintMatrix(myMat, size);
getchar();
}
MTYPE* GetNewMatrix(int size)
{
int i;
MTYPE* mat = (MTYPE *)malloc(sizeof(MTYPE) * size * size);
for(i = 0; i size * size; i++)
{
scanf(%lf, &mat[i]);
}
fflush(stdin);
return mat;
}
void PrintMatrix(MTYPE *mat, int size)
{
int i;
for(i=0;isize*size;i++)
{
printf(%+6.2f , mat[i]);
if(i % size == size - 1)
printf(\n);
}
}
MTYPE* MinorMat(MTYPE *majorMat, int size, int row, int col) // 소행렬 구하는 함수
{
int i,j,index=0;
MTYPE* minorMat = (MTYPE *)malloc(sizeof(MTYPE) * size-1 * size-1);
for(i=0;isize;i++)
{
for(j=0;jsize;j++)
{
if(i!=row-1 && j!=col-1)
{
minorMat[index]=majorMat[i*size+j];
index++;
}
}
}
return minorMat;
}
MTYPE cofactor(MTYPE *mat, int size, int i, int j)
{
}
MTYPE determinant(MTYPE *mat, int size)
{
}
질문 내용 : 우선 1차원적으로, 행렬을 구현했습니다.
그런데, 소행렬을 구하는 함수까지는 구현을 했는데, 여인수랑 행렬식을 구하는 함수는 구현을 못하겠습니다.
재귀적으로 구현하면 될것같은데, 기본값을 어떻게 줘야할지 막막하네요.
그리고, 행렬을 입력받을때와 소행렬을 만들때 동적할당한 메모리들은 free선언을 어떻게 해줘야 되는지...?
너무 답답하네요 많은 도움기다리겠습니다..ㅠ_ㅠ