关于网友提出的“ 的问题,可能是数组方面弄错了,多多指教”问题疑问,本网通过在网上对“ 的问题,可能是数组方面弄错了,多多指教”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 的问题,可能是数组方面弄错了,多多指教
描述: /*
残缺棋盘 的问题,我的代码有那么一点疑问,但是我总是不知道它为什么不对?在函数OutputBoard(int size)中的四个if语句部分,希望各位指点一下
*/
#include
using namespace std;
int Board[100][100],amount=0;
void OutputBoard(int size)
{
int i,j;
for(i=0;i<>
{
for(j=0;j<>
{
if(Board[i][j]<10)cout<<" ";
else cout<<" ";
cout<<>
}
cout<<>
}
}
//[h2,l2]残缺方格的坐标
void Cover(int h1,int l1,int h2,int l2,int size)
{
if(size<2)return;
int s,t;
s=size/2;
amount++;//计算放置棋子的号码
t=amount;//放置棋子的号码
//判断语句里与[s,s]比较
//每一个if都是在解决一个小问题
if(h2<>
{
Cover(h1,l1,h2,l2,s);//cover左上角的棋盘
//cover中间部分//当s=1
Board[h1+s][l1+s]=t;
Board[h1+s-1][l1+s]=t;
Board[h1+s][l1+s-1]=t;
Cover(h1,l1+s,h1+s-1,l1+s,s);//cover右上角
Cover(h1+s,l1,h1+s,l1+s-1,s);//cover左下角
Cover(h1+s,l1+s,h1+s,l1+s,s);//cover右下角
}
else if(h2=l1+s)//cover左下角
{
Cover(h1,l1+s,h2,l2,s);
Board[h1+s][l1+s-1]=t;
Board[h1+s][l1+s]=t;
Board[h1+s-1][l1+s-1]=t;
Cover(h1,l1,h1+s-1,l1+s-1,s);//cover左上角
Cover(h1,l1+s,h1+s,l1+s-1,s);//cover左下角
Cover(h1+s,l1+s,h1+s,l1+s,s);//cover右下角
}
else if(h2>=h1+s&&l2
{
Cover(h1+s,l1,h2,l2,s);
Board[h1+s][l1+s]=t;
Board[h1+s-1][l1+s]=t;
Board[h1+s-1][l1+s-1]=t;
Cover(h1,l1+s,h1+s-1,l1+s,s);//cover左上角
Cover(h1,l1,h1+s-1,l1+s-1,s);//cover右上角
Cover(h1+s,l1+s,h1+s,l1+s,s);//cover右下角
}
else if(h2>=h1+s&&l2>=l1+s)//残缺方格在右下角
{
Cover(h1+s,l1+s,h2,l2,s);
Board[h1+s-1][l1+s-1]=t;
Board[h1+s-1][l1+s]=t;
Board[h1+s][l1+s-1]=t;
Cover(h1,l1+s,h1+s-1,l1+s,s);
Cover(h1+s,l1,h1+s,l1+s-1,s);
Cover(h1+s,l1+s,h1+s-1,l1+s-1,s);
}
}
int main()
{
int h1=0,l1=0,h2,l2;
int s,size=1;
int i,j;
cin>>s;
for(i=0;i<>
{
size*=2;//棋盘大小
}
cin>>h2>>l2;
Cover(h1,l1,h2,l2,size);
OutputBoard(size);
return 0;
}
解决方案1: if(Board[i][j]<10)cout<<" ";//这里两个空格
else cout<<" ";
我测了一下逻辑错误
左下角时 改为 Cover(h1+s,l1,h1+s,l1+s-1,s);//cover左下角
右下角时 最后一行 改 Cover(h1,l1,h1+s-1,l1+s-1,s);
解决方案2: if(Board[i][j]<10)cout<<" ";
else cout<<" ";
>>这个有区别吗?没用吧
貌似编译通过了,逻辑错误就要自己debug了
以上介绍了“ 的问题,可能是数组方面弄错了,多多指教”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3743370.html