标题:我的递柜为什么不行呢??
只看楼主
029
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2005-8-26
 问题点数:0 回复次数:1 
我的递柜为什么不行呢??

//我的程序是关于8皇后的,因为我要画图形,所以注重他的位置要在我的位置上放小球表示 //它开始时的y为80,x为160 //望下依次加40 #include "stdafx.h" #include<stdlib.h> #include<stdio.h> struct name{ int x; int y; }xx[8]; int a=0; void qq(int d) { int b,c;//设置循环变量 a=d; xx[a].x=xx[a-1].x+40; if(xx[a].y==0)//如果是新的一竖列,就从xx[a]=80开始,如果是从当前行退到前一行,在是前一行的y+40 xx[a].y=80; for(b=0;b<=d-1;b++) for(c=0;c<=d-1;c++)//2层循环的目的是要准确确定着一行和前面的前面的所有不满足 { if(xx[a].y==xx[c].y) xx[a].y=xx[a].y+40;//如果同行就下移 if(abs(xx[a].x-xx[c].x)==abs(xx[a].y-xx[c].y))//如果在对角线 if(xx[a].y<360)//并且是他的y值在最大y值以内 xx[a].y=xx[a].y+40;//它的y值加40 if(xx[a].y>=360)//当加了以后大于最大值时,跳到上一竖行 { a=a-1;//跳到上一行 xx[a].y=xx[a].y+40;//他的y加40 qq(a);//递归 } } a=a+1;//如果不大于最大值时,马上跳到下一竖行 if(a<=7) qq(a); } void pp() { for(int i=1;i<=7;i++) xx[i].y=0;//每次都从开始处望下 xx[0].x=160;//设置第1个的位置 xx[0].y=80; a++; qq(a); } main()

{ pp(); for(int i=0;i<=7;i++) { printf("%d,%d\n",xx[i].x,xx[i].y); }//打印他的值 }

搜索更多相关主题的帖子: include 
2005-10-16 09:35
jwei0529
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-11-1
得分:0 
有的点走了很多次!
2005-11-05 22:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-30312-1-1.html




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

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