感觉就是经典的递归问题……
struct maze
{
char chara;
int visited;//这个就废除了吧
}
struct maze[m][n];
(此处略去将maze的每个元素中chara的初始化和visited都为0的操作)
int check(int row,int col,struct maze[][],top)
{
if(row==final_row&&col==final.col)
{
if(top<=s)
printf("yes");
else
printf("no");//这里我觉得只要提前到了终点处就算没开也应该要等在那啊,不应该还在失了智的左右横跳等出口啊
}
if(row<=m-1&&col<=n-1&&maze[row][col].chara!='#'&&top<=s)
{
check(row,col+1,maze,top+1);
check(row,col-1,maze,top+1);
check(row+1,col,maze,top+1);
check(row-1,col,maze,top+1);
}
}
int main()
{
int top=0,start_row(初始化),start_col(初始化);
check(start_row,start_col,maze,top);
}