我正在使用' @&#39作为使用递归导航迷宫的面包屑。它读取和打印都很好,但是当我添加实际逻辑时它出错了。我不确定我是否不理解递归我知道它会在满足基本情况之前调用自己(E /退出)我有一些错误弹出说我有语法错误我的' @'但是没有红线(我使用Visual Studios)也说
错误1错误C2660:' mazeEscape' :function不带2个参数
我不确定我错过了什么。
T
答案 0 :(得分:0)
Error 1 error C2660: 'mazeEscape' : function does not take 2 arguments
阅读。
bool mazeEscape(char maze[ROWS][COLS],int row,int col)
这是3个参数。
if (mazeEscape(row - 1, col))
这是2个参数。
2!= 3 ...
答案 1 :(得分:0)
您提供了此代码库:
const int ROWS = 10;
const int COLS = 10;
bool mazeEscape(char maze[ROWS][COLS],int row,int col) {
bool result = false;
if (row < 0 || row >= ROWS || col < 0 || col >= COLS)
return false;
if (mazeEscape(row - 1, col)) // recursively move up
result = true;
else if (mazeEscape(row + 1, col)) // recursively move down
result = true;
else if (mazeEscape(row, col - 1)) // recursively move left
result = true;
else if (mazeEscape(row, col + 1)) // recursively move right
result = true;
// Pick up the bread crump
return result;
if (maze[row][col] == '@')
return true;
if (mazeEscape(row - 1, col)) // recursively move up
return true;
else if (mazeEscape(row + 1, col)) // recursively move down
return true;
else if (mazeEscape(row, col - 1)) // recursively move left
return true;
else if (mazeEscape(row, col + 1)) // recursively move right
return true;
else
return false;
}
您对mazeEscape()
的每次调用只传递两个参数,它们似乎是行和列值。您的函数定义采用缺少的二维char数组。在您第一个if ... else if ... else statement
系列调用return result
后,这将阻止您执行其下方的任何行。您打算执行if
&amp;它下面有if...else if...else
个陈述?