小弟程序有点问题,大概是二维数组的引用问题未解决,求教

LucasGram LucasGram 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<iostream>
using namespace std;
//分块处理
//先写输出函数
void output(int a[][8]);
//输出函数后面应该是确定皇后位置函数
void check_board(int board[][8]);
void turn(int b[][8]);
void put(int b[][8]);
void main()
{
int board[8][8];
check_board(board);
put(board);
output(board);
}
void output(int a[][8])
{
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if(a[i][j]==1)
cout<<"Q";
else
cout<<"+";
}
cout<<endl;
}
}
void check_board(int board[][8])
{
for(int i=0;i<8;i++)
for(int j=0;i<8;j++)
board[i][j]=0;
}
void turn(int b[][8])//turn函数将某指定元素(1)在棋盘上的同行同列以及左右斜对角线上的元素全部由0转化为2
{
for(int i=0;i<8;i++)
{
for(int j=0;i<8;j++)
{
if(b[i][j]==1)
{
for(int k=0;k<8&&k!=i;k++)//同列的元素全部化为2
{
b[k][j]=2;
}
for(int k=0;k<8&&k!=j;k++)//同行的元素全部化为2
{
b[i][k]=2;
}
//对角线转化
for(int k=0;k<8;k++)
{
if(k>=0&&k<8&&(i+j-k)>=0&&(i+j-k)<8)
b[k][i+j-k]=2;
}
for(int k=0;k<8;k++)
{
if(k>=0&&k<8&&(k+j-i)>=0&&(k+j-i)<8)
b[k][k+j-i]=2;
}
}
}
}
}
void put(int b[][8])
{
//main函数进行将每行的元素遍历再放置皇后
bool C=1;
for(int k=0;k<8;k++)
{
for(int q=0;q<8&&C;q++)
{
if(b[k][q]==0)
{
b[k][q]=1;
C=0;
turn(b);
}
}
}
}
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
LucasGram
C++ 语言 65,214 成员 250,514 内容