- 为什么我这个函数陷入了死循环
-
囙形取数就是沿矩阵的边取数若当前方向上无数可取或已经取过,则左转90度一开始位于矩阵左上角,方向向下
输入第一行是两個不超过200的正整数m, n,表示矩阵的行和列接下来m行每行n个整数,表示这个矩阵
输出只有一行,共mn个数为输入矩阵回形取数得到的結果。数之间用一个空格分隔行末不要有多余的空格。
我在函数void型函数里面用了return 想要跳出函数 不知为何结果是死循环
return的时候由于你的寫法全是if,而return时候s变大了
所以在return到if(s%4==3)solve(i,--j);的时候又会执行下一行加上你S++那边的部分没有终止条件就会造成死循环
你可以把终止条件加到if else外面
感覺其他地方也有问题。。
终止条件有问题,以后遇上这种问题可以在每个分支内打断言或者调试信息,来看程序运行期间都走了哪些分支
已经取过则左转90度。这个没实现呢吧
函数无法结束的原因是你的终止条件语句写在了if语句里面debug的时候可以发现,满足条件return之后还是会执行else语句,
并一直执行else无法结束 应该把这条语句拿出来,写成if...else if...else 的形式