{
printf("找到了路径!\n");
for(m=0;m {
for(n=0;n
printf(" %c ",a[m][n]);
}
printf("\n");
}
}
else
{
printf("该迷宫为死迷宫!\n");
}
getch();
return 0;
}
int maze(char **a,int m,int n)
{
int k;
//该条件用于首次判断
if(a[m][n]=='1')
return 0;
a[m][n]='2';
if(m==i-1 && n==j-1 && a[m][n]=='2')
return 1;
//向下走
if(m+1
k=maze(a,m+1,n);
if(k==1)
return 1;
}
//向上走
if(m-1>-1 && a[m-1][n]=='0')
{
k=maze(a,m-1,n);
if(k==1)
return 1;
}
//向右走
if(n+1
k=maze(a,m,n+1);
if(k==1)
return 1;
}
//向左走
if(n-1>-1 && a[m][n-1]=='0')
{
k=maze(a,m,n-1);
if(k==1)
return 1;
}
a[m][n]='0';
return 0;
}