C语言 数据结构中堆栈 迷宫求解的问题

#defineM20#defineS79#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windo... #define M 20
#define S 79
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
main()
{
k1:
srand((unsigned)time(NULL));
char a[M][S];
int x,y,k=1,i,j,f,n,ch,c[M*S*2],d[M*S*2],p[M*S],t[M*S];
for(i=0;i<M;i++)
for(j=0;j<S;j++)
a[i][j]=' ';
for(i=0,j=0;j<S;j++)
a[i][j]='*';
for(i=M-1,j=0;j<S;j++)
a[i][j]='*';
for(i=0,j=0;i<M;i++)
a[i][j]='*';
for(i=0,j=S-1;i<M;i++)
a[i][j]='*';
for(i=0;i<M*S/3;i++)
a[rand()%M][rand()%S]='*';
a[M-2][S-2]='E';
p[0]=1;
t[0]=1;
c[0]=1;
d[0]=1;
x=1;
y=1;
for(n=1;;n++)
{
f=1;
if(a[x][y+1]!='*'&&a[x][y+1]!='R'&&a[x][y+1]!='X')
y++;
else if(a[x+1][y]!='*'&&a[x+1][y]!='R'&&a[x+1][y]!='X')
x++;
else if(a[x][y-1]!='*'&&a[x][y-1]!='R'&&a[x][y-1]!='X')
y--;
else if(a[x-1][y]!='*'&&a[x-1][y]!='R'&&a[x-1][y]!='X')
x--;
else
f=0;
if(f)
{
if(a[x][y]=='E')
break;
p[k]=x;t[k]=y;
a[x][y]='R';
k++;
}
else
{
if(--k<0)
break;
a[x][y]='R';
x=p[k];
y=t[k];
}
c[n]=x;
d[n]=y;
}
a[1][1]='S';
for(i=0;i<M;i++)
{
for(j=0;j<S;j++)
printf("%c",a[i][j]);
printf("\n");
}
Sleep(2000);
for(i=0;i<n;i++)
printf("%d,%d\t",c[i],d[i]);
printf("\n\n\n");
for(i=0;i<k;i++)
printf("%d,%d\t",p[i],t[i]);
//Sleep(5000);
system("CLS");
goto k1;
return 0;
}

我写的这个程序有BUG 有时候不能完全探测出所有路径,求没有漏洞的算法
比如这张图 有一个点没探到(第一行靠中间靠左边点)
照理说应该能探到的
展开
 我来答
蓉雪球
2014-01-24 · TA获得超过8998个赞
知道大有可为答主
回答量:2846
采纳率:79%
帮助的人:697万
展开全部
高手~我看得懂一点点,来水一楼,顺便坐等牛人
追答
原来是你提的问啊~
xx_lyq00
2014-01-24 · TA获得超过4138个赞
知道大有可为答主
回答量:1794
采纳率:88%
帮助的人:797万
展开全部
求所有路径的迷宫,用栈吧。
用回溯可以求出所有的。
更多追问追答
追问
我用的就是。。
追答
太乱了。。出栈入栈都没看出来 。栈底指针也没有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式