c语言if条件语句

本题求x的n次方
如果把if(n==1)sum=x;
else
去掉,我输入n不等于1的数,为什么得不到答案

因为递归函数,必须要有递归出口。没有递归出口的话,就会无限循环而造成系统栈溢出。
这个递归出口也可以写为if(n==0)return 1;(并把if(n==1)sum=x;
else
去掉)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-12
递归递归,有递有归。
你不设置n=1时的递归返回条件,那当你n一直减到1后就不能运算下去了。
比方说n=3,x=2好了,
那mypow(2,3)=mypow(2,2)*2=(mypow(2,1)*2)*2

那么算到这里的时候问题来了,mypow(2,1)等于什么?
程序不知道,你要给它它才知道。追问

递归返回为什么没有 return ?

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

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