(っ´▽`)っ

#include <stdio.h>
#include <stdlib.h>

#define  MATRIX_FACT(row, col)    a[(row) * rowLength + (col)]
#define  PART_MATRIX_FACT(row, col)  partMatrix[(row) * (rowLength - 1) + (col)]

double getDeterminant(double *a, int rowLength, int colLength);

int main(void){
  double  a[4][4] = {{1, 2, 3, 0}, {4, 5, 6, 0}, {7, 8, 9, 0}, {2, 4, 6, 8}};
  //double  a[4][4] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}};
  int    rowLength = 4;
  int    colLength = 4;
  //double  a[3][3] = {{0, -2, 0}, {-1, 3, 1}, {4, 2, 1}};
  //int    rowLength = 3;
  //int    colLength = 3;
  double  determinant = (double)0;
  determinant = getDeterminant((double *)a, rowLength, colLength);
  printf("determinant=%f\n", determinant);
  return 0;
}

(続く)