利用C++编写一个能计算n阶行列式的通用程序
时间: 2023-05-15 18:04:43 浏览: 101
将数组行列式互换。-C++程序设计(谭浩强完整版)
好的,以下是一个能计算n阶行列式的通用程序的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 10
int det(int a[][MAX_SIZE], int n) {
int i, j, k, sign = 1, det = 1;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
while (a[i][i]) {
k = a[j][i] / a[i][i];
for (int l = i; l < n; l++) {
a[j][l] -= k * a[i][l];
}
for (int l = i; l < n; l++) {
int temp = a[i][l];
a[i][l] = a[j][l];
a[j][l] = temp;
}
sign = -sign;
}
}
det *= a[i][i];
}
return sign * det;
}
int main() {
int n, a[MAX_SIZE][MAX_SIZE];
printf("请输入矩阵的阶数:");
scanf("%d", &n);
printf("请输入矩阵的元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
printf("该矩阵的行列式为:%d\n", det(a, n));
return 0;
}
```
这个程序使用了高斯消元法来计算行列式,时间复杂度为O(n^3)。
阅读全文