我想用符号显示路径的方向">","<"," v"," ^ &#34 ;.然而,符号在第一个转折点停止显示。我的代码出了什么问题?
bool find_path_with_direction(int row, int col, char maze[ROW][COL])
{
if(row > ROW-1 || col > COL-1) //out of boundary
return false;
if(maze[row][col]=='d') // destination
return true;
if(maze[row][col]!= ' '&& maze[row][col]!= 's') //obstacle
return false;
if(find_path_with_direction(row, col+1, maze)==true)
maze[row][col]= '>';
return true;
if(find_path_with_direction(row, col-1, maze)==true)
maze[row][col]= '<';
return true;
if(find_path_with_direction(row+1, col, maze)==true)
maze[row][col]= 'v';
return true;
if(find_path_with_direction(row-1, col, maze)==true)
maze[row][col]= '^';
return true;
maze[row][col]=' ';
return false;
}
答案 0 :(得分:2)
你的if条件有问题。
您没有使用提出问题的{
和}
。
使用左右括号{
}
例如,像这样写下你的if
条件。
if(find_path_with_direction(row, col+1, maze)==true)
{
maze[row][col]= '>';
return true;
}
如果您正在编写这样的代码。
if(find_path_with_direction(row, col+1, maze)==true)
maze[row][col]= '>';
return true;
此处,无论条件是true
还是false
,都会始终执行return true;
。