| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:[求助]哪里出错?
只看楼主 加入收藏
潇湘夜雨
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-5-1
收藏
 问题点数:0 回复次数:2 
[求助]哪里出错?

这个程序循环不可终止,且输出数组也不对,但自己找不到错的地方,盼高手指点!

#include<iostream>
#include<cmath>
#include<iomanip>
#include<conio.h>

using namespace std;

#define Size 4

int square[Size][Size]={0};

bool Checkplace( int i,int j ){
for(int k=0;k<Size;k++)
for(int l=0;l<Size;l++){
if(abs(k-i)==abs(l-j)&&square[k][l]==0&&square[i][l]==0&&square[k][j]==0)
return 1;
else
return 0;
}
}

void Print(){
for(int i=0;i<Size;i++){
for(int j=0;j<Size;j++)
cout<<left<<setw(5)<<square[i][j];
cout<<endl<<endl;
}
}

void EightQuene(){
int n=0,i=0,j,k,l,count=0;
while(n<=Size-1){
j=0;
square[n][j]=1;
while(j<Size-1){
for(i=0;i<Size;){
if(Checkplace(i,j+1)){
square[i][j+1]=1;
break;
}
else i++;
}
j++;
}
if( j>=Size-1){
count++;
cout<<"No."<<count<<":"<<endl;
Print();
}
else n++;
}

}

int main()
{
EightQuene();

getch();
return 0;
}

搜索更多相关主题的帖子: include return 
2007-05-07 20:13
zhangbo85128
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-17
收藏
得分:0 
for(int k=0;k<Size;k++)
for(int l=0;l<Size;l++){
if(abs(k-i)==abs(l-j)&&square[k][l]==0&&square[i][l]==0&&square[k][j]==0)
return 1;
else
return 0;
解释一下啊??
好象是这里的错误啊
2007-05-08 10:27
潇湘夜雨
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-5-1
收藏
得分:0 
这是判断square[k][l]为0,且不与square[i][j]在同一行,同一列,和在同一对角线上。
即判断square[k][l]可放置一个皇后。

长风破浪会有时, 直挂云帆济沧海。 C++ing!
2007-05-08 22:53
快速回复:[求助]哪里出错?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016345 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved