gpt4 book ai didi

c++ - 递归函数如何返回它的值?

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:16 25 4
gpt4 key购买 nike

我试图理解“递归”主题,但我无法理解此递归函数在离开“if”条款后如何返回其参数。

int sum(int x);
int main(){
int num;
printf("Enter a num : ");
scanf("%d",&num);
int result=sum(num);
printf("Result : %d\n",result);
return 0;
}
sum(int x){
if (x > 4){
return sum(x-1);
}
}

例如,如果我将“sum”函数编辑为“if (x>2)”,它将返回 2 个值。这就是我想知道的。 Sum(2) 没有任何值,但它返回 2。谢谢!

最佳答案

sum(int x){
if (x > 4){
return sum(x-1);
}
}

不返回值,因为 else 分支中缺少返回值,只有缺少的 else 分支完成递归

i cant get how this recursive function return its argument after it leaves "if" provision.

由于缺少返回,行为未定义,如果我在我的计算机上这样做:

pi@raspberrypi:/tmp $ ./a.out
Enter a num : 2
Result : 2
pi@raspberrypi:/tmp $ ./a.out
Enter a num : 12
Result : 4
pi@raspberrypi:/tmp $ ./a.out
Enter a num : 44
Result : 4

但结果可以是任何其他的

关于c++ - 递归函数如何返回它的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com