程序崩溃

1 c recursion

计划 -

接受当前年份和出生年份的功能,计算年龄

问题 -

程序崩溃

代码-

int Age(int curr,  int birth)
{
if (curr > birth)
{
    return  1 + Age(curr--, birth);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

函数main中的输入是:

printf ("%d\n", Age(2014,1989)); 
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助

alk*_*alk 6

它应该是

... Age(--curr, birth);
Run Code Online (Sandbox Code Playgroud)

curr应递减之前Age()被调用.

使用curr--递减curr 应用于currby 的递减curr--Age()返回后生效,这将永远不会发生,因为程序由于尝试无限递归而进入堆栈溢出.