| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:[求助]我的这个八皇后的程序为什么得不出结果?
取消只看楼主 加入收藏
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
 问题点数:0 回复次数:3 
[求助]我的这个八皇后的程序为什么得不出结果?

/*八皇后程序*/
/*程序说明:a[i]=j表示第i行在第j列上有皇后*/

/*请大侠们帮忙看下,谢谢!*/

#include <stdio.h>
int bijiao(int a,int b)
{
return (a==b)?1:0;
}

int function1(int a[],int n) /*用来检验两个皇后是否在同一列,如果在同列,返回0*/
{
int i=1,j,sum=0;
for(;i<n;i++)
for(j=i+1;j<n;j++)
{
sum+=bijiao(a[i],a[j]);
if(sum>0)
break;
}
return sum;
}
int function2(int a[],int n) /*函数用来检验任意两个数是否成对角线,如果有,返回0*/
{
int i,j,x;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
x=a[i]-a[j];
if(x<0)
x=-x;
if(x==j-i)
return 0;
}
return 1;
}
main()
{
int a[9]={0};
int i;
for(a[1]=1;a[1]<9;a[1]++)
for(a[2]=1;a[2]<9;a[2]++)
for(a[3]=1;a[3]<9;a[3]++)
for(a[4]=1;a[4]<9;a[4]++)
for(a[5]=1;a[5]<9;a[5]++)
for(a[6]=1;a[6]<9;a[6]++)
for(a[7]=1;a[7]<9;a[7]++)
for(a[8]=1;a[8]<9;a[8]++)
{
if((!function1(a,9))||(!function2(a,9)));/*只要有a[i]a[j]的差绝对值等于j-i,则说明它们在同对角线上,则循环继续*/
continue;/*只要有两个a[i]a[j]相等,则循环继续*/
for(i=1;i<9;i++)
printf("%d",a[i]);
printf("\n");
}
getch();

}

搜索更多相关主题的帖子: 皇后 int 结果 
2006-04-09 13:00
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

大家进来,帮帮我啊!!!


对不礼貌的女生收钱......
2006-04-09 13:12
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
版主,快进来啊!

对不礼貌的女生收钱......
2006-04-09 13:48
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

呵呵,谢谢大家了,很久没人看这个程序,我都忘了,
这个程序我解决了,不过还是谢谢大家的大力帮助!!


对不礼貌的女生收钱......
2006-05-10 16:00
快速回复:[求助]我的这个八皇后的程序为什么得不出结果?
数据加载中...
 
   



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

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