为什么我做的迷宫只有一条路径,请问能不能输出所有可能路径来,谢谢。
//迷宫递归:#include<stdio.h>
#include<stdlib.h>
#define m 3
#define n 3
typedef struct{
int x,y;
}item;
item move[4];
int path(int maze[][n+2],item move[],int x,int y,int step)
{
int i;
step++;
maze[x][y]=step;
if(x==m&&y==n)
return 1;
for(i=0;i<4;i++)
{
if(maze[x+move[i].x][y+move[i].y]==0)
if(path(maze,move,x+move[i].x,y+move[i].y,step))
return 1;
}
}
void main()
{
item move[4];
//int maze[m+2][n+2];
int i,j;
/* for(i=0;i<m+2;i++)
{
for(j=0;j<n+2;j++)
scanf("%d",&maze[i][j]);
}*/
int maze[m+2][n+2]={{1,1,1,1,1},{1,0,1,1,1},{1,0,0,1,1},{1,0,0,0,1},{1,1,1,1,1}};
printf("\n");
move[0].x=1;move[0].y=0;
move[1].x=0;move[1].y=1;
move[2].x=-1;move[2].y=0;
move[3].x=0;move[3].y=-1;
if(path(maze,move,1,1,1))
{
for(i=0;i<m+2;i++)
{
for(j=0;j<n+2;j++)
printf("%d ",maze[i][j]);
printf("\n");
}
}
else printf("迷宫无路径\n");
getchar();
}