C/C++の宿題を片付けます 107代目
■ このスレッドは過去ログ倉庫に格納されています
0165側近中の側近 ◆0351148456
2008/05/19(月) 22:58:08double getDeterminant(double *a, int rowLength, int colLength)
{
double determinant = (double)0;
double minorDeterminant = (double)0;
double *partMatrix = NULL;
int i = 0;
int j = 0;
int k = 0;
if(rowLength < 2 || colLength < 2 || rowLength != colLength){
goto catch;
}
if(rowLength == 2){
determinant = MATRIX_FACT(0, 0) * MATRIX_FACT(1, 1) - MATRIX_FACT(0, 1) * MATRIX_FACT(1, 0);
}
else{
for(i = 0; i < rowLength; i++){
partMatrix = (double *)malloc(sizeof(a[0]) * (rowLength - 1) * (colLength - 1));
for(j = 0; j < i; j++){
for(k = 0; k < colLength - 1; k++){
PART_MATRIX_FACT(j, k) = MATRIX_FACT(j, k + 1);
}
}
for(j = i; j < rowLength - 1; j++){
for(k = 0; k < colLength - 1; k++){
PART_MATRIX_FACT(j, k) = MATRIX_FACT(j + 1, k + 1);
}
}
(続く)
■ このスレッドは過去ログ倉庫に格納されています