📄 migong.c
字号:
#include "stdio.h"
int p=0;
int a[99];
void push(int ph)/*压入走过的路径*/
{
a[p]=ph;
p++;
}
int pop()/*弹出走过的路径*/
{
if(p==0){
return 0;/*empty stack */
}
p--;
return a[p];
}
int pharray[9][9];
void main()
{
int i;
int j;
int s;
int g;
/*迷宫初始化*/
int pharray[10][10]={
{1,1,1,1,1,1,1,1,1,1},
{1,0,1,0,0,0,0,1,0,1},
{1,0,0,1,0,0,0,1,0,1},
{1,0,0,0,0,1,1,0,0,1},
{1,0,1,1,1,0,0,0,0,1},
{1,0,0,0,1,0,0,0,0,1},
{1,0,1,0,0,0,1,0,0,1},
{1,0,1,1,1,0,1,1,0,1},
{1,1,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1}
};
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%d ",pharray[i][j]);
printf("\n");
}
printf(" \n") ;
gotoxy(40,40);
/*向四个方向探索迷宫的路径*/
i=1;
j=1;
pharray[j][i]=31;
again:
if(pharray[j+1][i]==0 && (i!=8 || j!=8) )
{
pharray[j+1][i]=31;
push(j*10+i);
/*printf("%d_",p);
printf("%d_",a[p-1]); */
j=j+1;
goto again;}
else
if(pharray[j][i+1]==0 && (i!=8 || j!=1))
{ pharray[j][i+1]=16;
push(j*10+i);
/* printf("%d_",a[p-1]); */
++i;
goto again; }
else
if(pharray[j][i-1]==0 && (i!=8 || j!=1))
{ pharray[j][i-1]=17;
push(j*10+i);
i=i-1;
goto again; }
else
if(pharray[j-1][i]==0 && (i!=8 || j!=1))
{
pharray[j-1][i]=30;
push(j*10+i);
j=j-1;
goto again; }
else
if(i!=8 && j!=1)
{
if(pharray[i+1][j]==1 && pharray[i][j+1]==1 && pharray[i][j-1]==1 && pharray[i-1][j]==1)
{
printf("迷宫没有出口!");
return; }
else
pharray[j][i]=18;
s=pop();
j=s/10;
i=s%10;
goto again; }
else
push(18);
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%c ",pharray[i][j]);
printf("\n"); }
for(g=0;g<p;g++){
gotoxy(2*(a[g]%10+1)-1,a[g]/10+12);
sleep(1); }
gotoxy(22,35);
printf("\n");
printf("\n\n\n\n\n\n\n\n");
;
printf("迷宫出口路径为:");
for(g=0;g<p;g++)
{
printf ("%d",a[g]);
printf("__");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -