C语言编程题:用递归的方式求年龄问题
时间: 2024-03-18 12:40:07 浏览: 77
好的,这里是使用递归的方式求年龄问题的 C 语言示例代码:
```c
#include <stdio.h>
#include <time.h>
int calculate_age(int birth_year)
{
int current_year = localtime(&time(NULL))->tm_year + 1900;
if (current_year <= birth_year) {
return 0;
} else {
int age = current_year - birth_year;
return age + calculate_age(birth_year + 1);
}
}
// 示例
int main()
{
int age = calculate_age(1990);
printf("Age is %d\n", age); // 输出当前年份减去出生年份的总和,即 2021 - 1990 = 31
return 0;
}
```
这个 C 语言的递归算法与 Python 的示例代码类似,只不过获取当前年份的方式略有不同。需要注意的是,这个算法的递归深度可能会很大,因此可能会有性能问题。如果你需要计算大量人的年龄,可以考虑改用非递归的迭代方式。
阅读全文