}
cout< return ; //到达出口; else d=0; //重新初始化方向; } else d++; //改变方向; } } cout<<\对不起,无法找到出口.\ return; //迷宫无路; } void printpath() { int m,n,i,j,l,c,d; string s; cout<<\请输入迷宫的行数列数如:(m n)\ cin>>m>>n; int **maze=new int*[m+2]; for(i=0;i<=m+1;i++) maze[i]=new int[n+2];//申请迷宫的空间; for(i=0;i<=m+1;i++) maze[i][0]=1; for(i=0;i<=n+1;i++) maze[0][i]=1; for(i=0;i<=m+1;i++) 11 maze[i][n+1]=1; for(i=0;i<=n+1;i++) maze[m+1][i]=1; //建立迷宫周围的墙; cout<<\、采用创建好的迷宫; 2、自己创建迷宫(其他输入按'2'处理)\ cin>>s; if(s==\ { srand(time(0)); //系统时间随机函数; for(i=1;i<=m;i++) for(j=1;j<=n;j++) maze[i][j]=rand()%2; //随机赋值 maze[1][1]=0; //(1,1)点为可通过点; maze[m][n]=0; //(m,n)点为可通过点; } else { cout<<\请输入迷宫:\行\列\输入必须为'0' 或 '1';\ for(i=1;i<=m;i++) //输入第i行迷宫的构造; for(j=1;j<=n;j++) //输入第j列迷宫的结构; { cin>>maze[i][j]; A:if(maze[i][j]!=0 && maze[i][j]!=1) { cout<<\请再次输入:\ cin>>maze[i][j];goto A; //判错; } 12 } } cout<<\迷宫如下:\显示用户输入的迷宫; for(i=0;i<=m+1;i++) { for(j=0;j<=n+1;j++) cout< cout< } H:cout<<\请输入迷宫入口(a,b),出口(c,d):\ cin>>i>>j>>c>>d; path(maze,i,j,c,d); //调用路径函数,输出路径; cout< restore(maze,m,n); //恢复迷宫; path1(maze,m,n,i,j,c,d); //输出最短路径; cout< } else return; //跳出此函数; } void main() { 13 string s=\do { cout<<\欢迎到达迷宫界面--------------------------\\n\ printpath(); cout< cout<<\是否继续?'Y' 或'N'(输入其他操作按'N')\ cin>>s; }while (s==\ system(\ } 14