题目:
我的代码:
问题:老是提示有异常,应该是递归出了问题,大家帮忙看下应该怎么改?谢谢!
你在递归函数里面的for循环有问题,
问题的对数组的访问越界了。
si[8]这个数组只有8个单位长度,里面只有8个元素,有si[0],si[1],si[2],si[3],si[4],si[5],si[6],si[7]。
for循环中i=0开始,再到i=8的时候,这个时候进行了第9次循环,访问的是si[8],访问越界了。
下面是出问题的地方:
for (int i = 0; i <= 8; i++)
{
if (a == si[i][0] && b == si[i][1])
return path(a + l, b) + path(a, b + 1) ;
}
这个地方应该这么修改。for循环判断语句不能i<=8,应该是i<8
for (int i = 0; i < 8; i++)
{
if (a == si[i][0] && b == si[i][1])
return path(a + 1, b) + path(a, b + 1) ;
}