在C语言中计算行列式可以通过多种方法实现,下面我将介绍两种常见的方法:按行展开法和高斯消元法。
方法一:按行展开法
按行展开法是一种直观的计算方法,通过递归地计算余子式并累加得到行列式的值。以下是一个简单的实现示例:
```c
include include define MAX 20 // 最大计算阶数,可以更改 // 计算余子式的值 int Minor(int arr[MAX][MAX], int i, int n) { int j, M = 0; for (j = 0; j < n; j++) { if (j != i) { M += arr[i][j] * Minor(arr, j, n - 1); } } return M; } // 计算行列式的值 int DET(int arr[MAX][MAX], int n) { int i, sum = 0; if (n == 1) { return arr; } for (i = 0; i < n; i++) { sum += (i % 2 == 0 ? 1 : -1) * arr[i] * Minor(arr, 0, n - 1); } return sum; } int main() { int n; printf("请输入行列式的阶数: "); scanf("%d", &n); int arr[MAX][MAX]; printf("请输入行列式的元素:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &arr[i][j]); } } int result = DET(arr, n); printf("行列式的值为: %d\n", result); return 0; } ``` 方法二:高斯消元法 高斯消元法通过将行列式化简为上三角形,然后累乘对角线元素来计算行列式的值。以下是一个简单的实现示例: