const int NUM=8;//八皇后问题(NUM=8) static int count=0;
void output(int array[][NUM]);//八皇后分布输出
int judge(int array[][NUM],int row,int column);//判定函数 void search(int array[][NUM],int row);//搜索函数
int main() {
int i,j;
int box[NUM][NUM]; for(i=0;ifor(j=0;j//output(box); search(box,0);printf(\"八皇后分布共有 %d 种。\\n\ return 0; }
void output(int array[][NUM]) {
int i,j;
for(i=0;ifor(j=0;jprintf(\"%d \ }printf(\"\\n\"); } }
int judge(int array[][NUM],int row,int column) {
int i,j;
for(i=0;ifor(j=0;jif(array[i][j]==1) {if(j==column) return 0;//判断是否在同一列
if(abs(row-i)==abs(column-j)) return 0;//判断是否在同一斜线上 } } }
return 1; }
void search(int array[][NUM],int row) {
int j;
//for(i=0;ifor(j=0;jif(!judge(array,row,j)) {//printf(\"%d \ continue; }
array[row][j]=1; if(row==NUM-1) {
//array[row][j]=1; count++;
printf(\"八皇后分布图: %d\\n\ output(array); array[row][j]=0; continue; } else
search(array,row+1); array[row][j]=0; } //} return; }