数组中的递归

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:35:18
有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人岁数,他说比第2个人大2岁。问第2个人岁数,他说比第1个人大2岁。最后问第1个人,他说10岁。请计算并输出这5个人的年龄
要求1)设计一个递归函数void getAge(int n,int a[]),用于计算第n个人的年龄并保存到数组元素a[n-1]中。
2)设计main函数,定义用于保存5个人年龄的数组,然后调用递归函数getAge,求得5个人的年龄并输出。请写出完整C语言程序

//---------------------------------------------------------------------------

#include <stdio.h>

void getAge(int n,int a[])
{
if (n==1) {
a[n-1]=2;
}
else {
getAge(n-1,a);
a[n-1]=a[n-2]+2;
}
}
int main(void)
{
int i,a[5];
getAge(5,a);
for (i = 0; i<5; i++) {
printf("%d\n",a[i]);
}
return 0;
}
//---------------------------------------------------------------------------