ToistQingzi
2020-08-16 18:45
采纳率: 20%
浏览 107

C++ 新手请教,递归函数,同样的意思,为什么其中一个会报错

图片说明
最大公约数辗转相除的递归式子
第一句正确得出结果。
第二句没有任何反应,用Debug还编译器闪退。

备注:这两句只是暂时放在一起比较,运行的时候只有其中一句。我是想问第二句为什么的没有结果?(第二句是书本的原话)

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • qiu_shaofeng 2020-08-17 09:38
    已采纳
    return (a%=b) ? t(b,a) :  b;加个括号
    
    已采纳该答案
    打赏 评论
  • YH_24H 2020-08-16 20:05

    因为执行了第一个return之后这个函数就退出了。不存在执行第二个return里的式子。

    打赏 评论
  • Admini$trat0r 2020-08-16 20:21

    return就结束了 把第一个return注释行 然后debug 或者打断点编译 直接执行第二个return

    打赏 评论
  • MFine 2020-08-17 01:53

    同样的意思?你可真逗,语法都写错了,表达式也没写全,还同样的意思。
    return a%b ? t(b,a%b) : b;

    打赏 评论

相关推荐 更多相似问题