在C語言中,可以使用遞歸方法來求解行列式的值。以下是一個示例代碼:
#include <stdio.h>
#define N 3
// 計算二階行列式的值
int det2(int a[N][N], int n) {
return a[0][0] * a[1][1] - a[0][1] * a[1][0];
}
// 計算n階行列式的值
int det(int a[N][N], int n) {
int result = 0;
int sign = 1; // 符號位
if (n == 2) {
return det2(a, n);
}
int temp[N][N];
for (int i = 0; i < n; i++) {
int ti = 0;
for (int j = 1; j < n; j++) {
for (int k = 0; k < n; k++) {
if (k == i) {
continue;
}
temp[ti][k] = a[j][k];
}
ti++;
}
result += sign * a[0][i] * det(temp, n - 1);
sign = -sign;
}
return result;
}
int main() {
int a[N][N] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int determinant = det(a, N);
printf("行列式的值為: %d\n", determinant);
return 0;
}
在這個示例代碼中,我們定義了一個遞歸函數det
來計算n階行列式的值。當n為2時,調用det2
來計算二階行列式的值。在det
函數中,我們使用余子式展開法來遞歸計算行列式的值。最后,在main
函數中,我們定義一個3階矩陣a,并調用det
函數來計算行列式的值。