gpt4 book ai didi

c - 为什么 fun(int i) 中的 printf 语句没有执行?

转载 作者:行者123 更新时间:2023-11-30 18:29:37 24 4
gpt4 key购买 nike

这是一段具有递归循环的代码。我得到的输出为 199,但标记为 --A 的 printf 语句未执行。请告诉我为什么??

#include <stdio.h>

int fun(int); // function defined

int main()
{
printf(" %d ", fun(200)); // function called
return 0;
}

int fun(int i) // entire body of the function
{
static int d = 0;
d++;

if (i % 2)
return (i++);
else
return fun(fun(i - 1));

printf("%d ", d);// ------A

} // function fun(int) ends here.

最佳答案

来自:

if ( i%2 ) return (i++);
else return fun(fun( i - 1 ));

如果函数收敛,两个部分都会返回。所以 printf 是无法访问的代码。

关于c - 为什么 fun(int i) 中的 printf 语句没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36172235/

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