weixin_43292592 2018-11-01 11:24 采纳率: 0%
浏览 464

萌新学c++,写了个八皇后,运行怎么也不对(运行结果为0),求大佬指点。

#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;
}
}
}

  • 写回答

1条回答 默认 最新

  • Italink 2018-11-01 12:23
    关注

    你贴代码的时候点击编辑框上的</>,然后把代码放到两行省略号之间,不然的话代码会缺失一部分

    评论

报告相同问题?

悬赏问题

  • ¥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 实现 索引的重建