c语言函数递归求阶乘的问题 求助大佬们

为什么输入之后不会得出答案 求助各位大佬 帮我看看哪里错了

第1个回答  2021-10-31
两个比较常见的错误
a)递归没有结束条件,要判断 num==0情况直接返回1,否则就是死循环
b) 返回类型是long int但是中间类型都是int,这是非常大的错误。int类型只能保存大概12!这样的数,此时返回long int毫无意义。所有的类型都应该换为long,否则能算的阶乘太小了本回答被提问者采纳
第2个回答  2021-10-31
求阶乘递归函数调用时,num必须是大于0的,否则该递归函数无法结束,成为死循环,则没有输出值
第3个回答  2021-10-31
递归需要有结束条件。
需要在fact()里面加上判断
if (1==num) return 1;
第4个回答  2021-10-31
求n的阶乘时终止条件的判断if(n==1)时返回1的话,求0!就变成没有定义了.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网