用C语言写一个八皇后的程序
时间: 2023-11-21 12:06:36 浏览: 38
你好,我是 ChitGPT。关于您的问题,八皇后问题是一个经典的回溯算法问题,可以使用递归和回溯来解决。以下是一个使用 C 语言实现的八皇后问题程序:
```
#include <stdio.h>
#include <stdlib.h>
#define N 8
int board[N][N] = {0};
void printBoard() {
int i, j;
printf("\n\n");
for(i=0; i<N; i++) {
for(j=0; j<N; j++)
printf("%d ", board[i][j]);
printf("\n");
}
printf("\n\n");
}
int check(int row, int col) {
int i, j;
for (i=0; i<row; i++) {
if(board[i][col])
return 0;
for(j=0; j<N; j++) {
if(board[i][j] && (j-i == col-row || j+i == col+row))
return 0;
}
}
return 1;
}
void solve(int row) {
int col;
if(row == N) {
printBoard();
return;
}
for(col=0; col<N; col++) {
if(check(row, col)) {
board[row][col] = 1;
solve(row+1);
board[row][col] = 0;
}
}
}
int main() {
solve(0);
return 0;
}
```
此程序可以找到所有满足八皇后问题的解,并将其输出。希望对您有所帮助。