안녕하세요. 프로그램을 공부하고 있는 학생입니다. 이번에 행렬을 이용하여 역행렬 및 기구학적 해석을 해주는 프로그램을 만들려고 하는데요. 4X4행렬의 행렬식을 구하기 위하여 프로그램을 작성하였습니다. 2X2와 3X3의 행렬식을 구하는것에서는 문제가 발생하지 않았는데 4x4을 구하는 전역 함수에서는 문제가 발생을 하더라고요. 다음이 프로그램의 일부입니다.
double det_function(double a[][4],int col,int row)
{
int i;
int j;
double a_1[3][3];
//double* numPtr;
//numPtr = &a_1[3][3];
double a_2[3][3] = { 0 };
double a_3[3][3] = { 0 };
double a_4[3][3] = { 0 };
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; i++)
{
a_1[i][j] = a[i + 1][j + 1]; -> 문제가 발생하는 장소
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; i++)
{
int j_2;
if (j == 0)j_2 = 0;
if (j == 1)j_2 = 2;
if (j == 2)j_2 = 3;
a_2[i][j] = a[i + 1][j_2];
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; i++)
{
int j_3;
if (j == 0)j_3 = 0;
if (j == 1)j_3 = 1;
if (j == 2)j_3 = 3;
a_3[i][j] = a[i + 1][j_3];
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; i++)
{
a_4[i][j] = a[i + 1][j];
}
}
double A = a[0][0] * det_3(a_1, 3, 3) - a[0][1] * det_3(a_2, 3, 3) + a[0][2] * det_3(a_3, 3, 3) - a[0][3] * det_3(a_4, 3, 3);
printf("A = %f", A);
return 0;
}
이 문제를 해결하고 싶은데 어떻게 해결해야될까요?
for (j = 0; j < 3; i++)
{
a_1[i][j] = a[i + 1][j + 1]; -> 문제가 발생하는 장소
}
}