能不能再写一个C语言代码
时间: 2024-02-27 12:52:32 浏览: 49
当然可以,以下是一个完整的 N 皇后问题的解决方案的 C 代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAXN 15
int n, sum = 0, x[MAXN];
bool Place(int t) {
for (int i = 1; i < t; i++) {
if (x[i] == x[t] || abs(x[i] - x[t]) == abs(i - t)) {
return false;
}
}
return true;
}
void Backtrack(int t) {
if (t > n) {
sum++;
printf("第%d放置方案为: ", sum);
for (int i = 1; i <= n; i++) {
printf("%d ", x[i]);
}
printf("\n");
} else {
for (int i = 1; i <= n; i++) {
x[t] = i;
if (Place(t)) {
Backtrack(t + 1);
}
}
}
}
int main() {
printf("请输入 N 的值:");
scanf("%d", &n);
Backtrack(1);
printf("共有 %d 种方案\n", sum);
return 0;
}
```
这段代码和上面的 C++ 代码实现基本相同,只是语法略有不同。