#include
#include
using namespace std;
int a[9][9];
int arrow=0;
int num=0;
int ctail;
int rtail=8;
int EightQueen(int);
int redo(int,int);
int act(int);
int change1(int,int);
int change0(int,int);
void clear();
int main(){
for(int w=1;w<=8;w++){
EightQueen(1);
clear();
}
cout<
return 0;
}int EightQueen(int r){
act(r);
}
int act(int r){
for(int act_c=1;act_c
if(a[r][act_c]==0){
change1(r,act_c);
if(r==8){
ctail=act_c;
num=num+1;
return redo(rtail,ctail);
break;
}
else{
r=r+1;
arrow=0;
return EightQueen(r);
}
}
if(a[r][act_c]==1&&act_c==8){
arrow=1;
}
}
}
int change1(int m,int n){
for(int i=1;i
a[i][n]=1;
}
for(int j=1;;j++){
if(m+j==9||n+j==9){
break;
}
else{
a[m+j][n+j]=1;
}
}
for(int k=1;;k++){
if(m+k==9||n-k==0){
break;
}
else{
a[m+k][n-k]=1;
}
}
}
int change0(int m,int n){
for(int i=1;i
a[i][n]=0;
}
for(int j=1;;j++){
if(m+j==9||n+j==9){
break;
}
else{
a[m+j][n+j]=0;
}
}
for(int k=1;;k++){
if(m+k==9||n-k==0){
break;
}
else{
a[m+k][n-k]=0;
}
}
}int redo(int m,int n){
change0(m,n);
a[m][n]=1;
act(m);
if(arrow==1&&m>2&&n>2){
m=m-1;
n=n-1;
redo(m,n);
}
}
void clear(){
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
a[i][j]=0;
}
}
}
萌新学c++,写了个八皇后,运行怎么也不对(运行结果为0),求大佬指点。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
悬赏问题
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建