以下程序是用递归计算学生的年龄。已知第一位最小的学生年龄为 10 岁,第二位比第一位大2岁,第三位比第二位大2岁,淇余学生的年龄依次类推,求第5 个学生的年龄。请填空。 #include <stdio.h> int age int n) { int c; 200619р if(==1 ) c=10; else c= return(c); } void main) { int n=5; 619203 printf("age:%dn",age(n));
时间: 2024-02-22 17:59:49 浏览: 150
程序中存在语法错误,应该是这样的:
```
#include <stdio.h>
int age(int n) {
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
void main() {
int n=5;
printf("age:%d\n",age(n));
}
```
根据递推公式,第五个学生的年龄应该是 16 岁。因此,填空为 16。
相关问题
请编写一递归函数age( ),要求以递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,函数应可返回第n位学生的年龄。
好的,我可以回答这个问题。以下是递归函数age()的代码:
```c
int age(int n) {
if (n == 1) {
return 10;
} else {
return age(n-1) + 2;
}
}
```
这个函数以递归的方式计算学生的年龄。如果输入参数n为1,函数返回10,表示第一位学生的年龄。否则,函数返回age(n-1) + 2,表示第n位学生的年龄比第n-1位学生的年龄大2岁。
5个学生坐在一起,上一个学生比下一个学生分别小2岁,已知第1个学生今年10岁,用递归函数求第5个学生的年龄。
好的,根据题意可以得知,第5个学生的年龄比第4个学生的年龄小2岁,而第4个学生的年龄比第3个学生的年龄小2岁,以此类推,第2个学生的年龄比第1个学生的年龄小2岁。因此,可以写出递归函数:
```python
def get_age(n):
if n == 1:
return 10
else:
return get_age(n-1) - 2
```
其中,n表示第几个学生,get_age(n)表示第n个学生的年龄。当n等于1时,即第一个学生,年龄为10岁。
现在来计算第5个学生的年龄,调用函数get_age(5),得到:
```python
get_age(5) = get_age(4) - 2
= (get_age(3) - 2) - 2
= ((get_age(2) - 2) - 2) - 2
= (((get_age(1) - 2) - 2) - 2) - 2
= ((10 - 2) - 2) - 2) - 2
= 2
```
因此,第5个学生的年龄为2岁。