繁体   English   中英

程序崩溃

[英]Program crashes

程序-

接受当前年份和出生年份,计算年龄的函数

问题 -

程序崩溃

编码-

int Age(int curr,  int birth)
{
if (curr > birth)
{
    return  1 + Age(curr--, birth);
}
return 0;
}

函数main中的输入为:

printf ("%d\n", Age(2014,1989)); 

谢谢您的帮助

它应该是

... Age(--curr, birth);

因为curr应该在调用Age()之前递减。

使用 curr--递减 curr 应用于减量curr通过curr--后生效Age()返回,这将永远不会发生,因为PROGRAMM运行到堆栈溢出由于试图无穷远递归。

我想这可以简单地完成

age = curr-birth-1

不用担心递归。

curr--您正在执行递减,递减会影响下一行。 因此,传递给函数的值始终与curr相同,您应该执行“ --curr”,这样它将在调用函数之前减小curr值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM