| 查看: 301 | 回复: 0 | ||
[求助]
新手求大神指导,,为什么这个运行一下总要循环两次呢?
|
|
#include<stdio.h> #include<stdlib.h> #include<time.h> #define M 8 #define N 8 #define MAXS 100 #define OK 1 #define ERROR 0 typedef int Status; typedef struct{ int x, y; }PosType; typedef int MazeType[M+2][N+2]; typedef struct { int i; int j; int di; }SElemType; typedef struct { SElemType st[MAXS]; int top; }Stack; Status MazePath(MazeType maze, Stack &S, PosType start, PosType end) { int i, j, di, ftag; S.top++; S.st[S.top].i=start.x, S.st[S.top].j=start.y, S.st[S.top].di=-1;//入口进栈 maze[start.x][start.y]= -1; while(S.top>-1) { i = S.st[S.top].i, j= S.st[S.top].j, di= S.st[S.top].di;//读取栈顶元素 if(end.x==i&&end.y==j) return OK; ftag = 0; while(di<4&&ftag==0) { di++; switch(di) { case 0: i=S.st[S.top].i+1, j=S.st[S.top].j; break; //向下 case 1: i=S.st[S.top].i, j=S.st[S.top].j+1; break; //向右 case 2: i=S.st[S.top].i-1, j=S.st[S.top].j; break; //向上 case 3: i=S.st[S.top].i, j=S.st[S.top].j-1; break; //向左 } if(maze[j]==0) ftag = 1; } if(ftag == 1) { S.st[S.top].di = di; S.top++; S.st[S.top].i=i, S.st[S.top].j=j, S.st[S.top].di=-1; //新位置进栈 maze[j]=1; //做标记 } else { maze[S.st[S.top].i][S.st[S.top].j]=0; S.top--; } } return ERROR; } int main() { char p; while(true){ printf("请输入任意键继续,输入q时退出: " ;scanf("%c",&p); printf("\n" ;if(p=='q'||p=='Q') break; MazeType maze; int i, j; Stack S; S.top = -1; PosType start={1,1}, end={M,N}; srand((unsigned)time(NULL));//随机生成迷宫数组 for(i=1; i<=M; i++) for(j=1; j<=N; j++) maze[j]=rand()%2; for(i=0; i<=M+1; i++) //迷宫四周为1 maze[0]=maze[N+1]=1; for(j=0; j<=N+1; j++) maze[0][j]=maze[M+1][j]=1; maze[1][1]=maze[M][N]=0; printf("迷宫输出: \n" ;for(i=0; i<=M+1; i++) { for(j=0; j<=N+1; j++) printf("%3d", maze[j]); printf("\n" ;} if(MazePath(maze, S, start, end)) { printf("迷宫路径如下:" ;for (i=0; i<=S.top; i++) { printf(" (%d,%d)", S.st.i, S.st.j); if((i+1)%6 == 0) printf("\n" ;} printf("\n" ;} else printf(" 无路径!\n" ;} return 0; } |
» 猜你喜欢
过年走亲戚时感受到了所开私家车的鄙视链
已经有10人回复
今年春晚有几个节目很不错,点赞!
已经有12人回复
情人节自我反思:在爱情中有过遗憾吗?
已经有13人回复
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有12人回复
基金正文30页指的是报告正文还是整个申请书
已经有5人回复
找到一些相关的精华帖子,希望有用哦~
串联2P铝壳电池充放电循环曲线异常,求大神分析!
已经有3人回复
现在用MATLAB求解一个循环后画出曲线遇到问题,求大神指点!!
已经有7人回复
VASP分割态密度运行vp文件出错,求大神解答,求拯救!!!
已经有4人回复
各位大神 小弟初拥origin 做循环伏安曲线 不懂求教
已经有5人回复
求电化学和晶体方面大神帮我分析一下这个循环伏安图
已经有3人回复
高斯程序优化运行过程中终止之后续算,为什么总是无限循环无法收敛呢
已经有7人回复
有没有大神用铂或金在硫酸里做循环伏安曲线和标准曲线差不多,求赐教啊
已经有5人回复
matlab解决重心法选址问题,运行不了啊,求助各位大神
已经有10人回复
求助大神们,这是用Autolab做的电解液的循环伏安曲线,出现这种情况,什么原因
已经有5人回复
linux终端运行程序出错,求大神帮忙
已经有6人回复
科研从小木虫开始,人人为我,我为人人













;
回复此楼
点击这里搜索更多相关资源