| 查看: 287 | 回复: 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; } |
» 猜你喜欢
求助一下有机合成大神
已经有3人回复
拟解决的关键科学问题还要不要写
已经有8人回复
最失望的一年
已经有13人回复
存款400万可以在学校里躺平吗
已经有30人回复
求推荐英文EI期刊
已经有5人回复
请教限项目规定
已经有4人回复
国自然申请面上模板最新2026版出了吗?
已经有20人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
找到一些相关的精华帖子,希望有用哦~
串联2P铝壳电池充放电循环曲线异常,求大神分析!
已经有3人回复
现在用MATLAB求解一个循环后画出曲线遇到问题,求大神指点!!
已经有7人回复
VASP分割态密度运行vp文件出错,求大神解答,求拯救!!!
已经有4人回复
各位大神 小弟初拥origin 做循环伏安曲线 不懂求教
已经有5人回复
求电化学和晶体方面大神帮我分析一下这个循环伏安图
已经有3人回复
高斯程序优化运行过程中终止之后续算,为什么总是无限循环无法收敛呢
已经有7人回复
有没有大神用铂或金在硫酸里做循环伏安曲线和标准曲线差不多,求赐教啊
已经有5人回复
matlab解决重心法选址问题,运行不了啊,求助各位大神
已经有10人回复
求助大神们,这是用Autolab做的电解液的循环伏安曲线,出现这种情况,什么原因
已经有5人回复
linux终端运行程序出错,求大神帮忙
已经有6人回复
科研从小木虫开始,人人为我,我为人人













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