用C语言的指针写有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁;问第4个人岁数,他说比第3个人大2岁;问第3个人,又说比第2个人大2岁;问第2个人,说比第1个人大2岁;最后问第1个人,他说是10岁。请问第5个人多大。用递归函数求解
时间: 2023-12-10 17:39:42 浏览: 52
以下是用C语言的指针写递归函数来解决这个问题的示例代码:
```c
#include <stdio.h>
int get_age(int* p, int n) {
if (n == 1) { // 第1个人给定年龄为10岁
return 10;
} else {
return get_age(p, n-1) + 2; // 递归调用,每次加2岁
}
}
int main() {
int ages[5];
for (int i = 0; i < 5; i++) {
ages[i] = get_age(ages, i+1); // 调用递归函数获取每个人的年龄
}
printf("第5个人的年龄是:%d\n", ages[4]);
return 0;
}
```
输出结果为:
```
第5个人的年龄是:18
```
相关问题
用C语言的指针替代变量有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁;问第4个人岁数,他说比第3个人大2岁;问第3个人,又说比第2个人大2岁;问第2个人,说比第1个人大2岁;最后问第1个人,他说是10岁。请问第5个人多大。用递归函数求解。
可以用递归函数来解决这个问题。我们可以定义一个函数,它的参数是一个整数 n,表示要求第 n 个人的年龄。函数首先判断 n 是否等于 1,如果是,则返回 10,否则递归调用自身,传入参数 n-1,然后再加上 2,就是第 n 个人的年龄。
下面是用 C 语言实现的递归函数:
```c
#include <stdio.h>
int getAge(int n) {
if (n == 1) {
return 10;
} else {
return getAge(n-1) + 2;
}
}
int main() {
int age = getAge(5);
printf("第5个人的年龄是:%d\n", age);
return 0;
}
```
输出结果为:
```
第5个人的年龄是:18
```
有四个人坐一起,问第四个人多少岁,他说比第三个人大四岁,问第三个人多少岁,他说比第二个人大四岁,问第二个人多少岁,他说比第一个人大四岁,问第一个人多少岁,他说12岁,问第四个人多少岁?要求用C语言递归实现
好的,我会用C语言递归实现解决这个问题。代码如下:
```c
#include <stdio.h>
int age(int n) {
if (n == 1) {
return 12; // 第一个人12岁
} else {
return age(n - 1) + 4; // 每个人比前一个人大4岁
}
}
int main() {
printf("第四个人的年龄是:%d岁\n", age(4));
return 0;
}
```
解析:通过递归函数 `age(n)`,可以求出第n个人的年龄。当 `n=1` 时,返回第一个人的年龄12岁;当 `n>1` 时,递归调用 `age(n-1)`,并加上4岁,即可得到第n个人的年龄。最终在 `main()` 函数中调用 `age(4)`,即可得到第四个人的年龄。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)