[英]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.