C语言:哪位高手能解释一下下面这个程序,尽可能一步一步详细解说,解释的清楚的话再加分

#include"stdafx.h"intage(intn){intc;if(n==1)c=2;elsec=age(n-1)+2;returnc;}main(){prin... #include "stdafx.h"
int age(int n)
{
int c;
if(n==1)
c=2;
else c=age(n-1)+2;
return c;
}
main()
{
printf("第5个小朋友的年龄为%d\n",age(5));
}
展开
 我来答
ph12
2011-12-07 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1364
采纳率:0%
帮助的人:1961万
展开全部
#include "stdafx.h" /*C语言头文件,表示下面的程序要引用某一个C编译器自带的函数*/
int age(int n) /*定义返回值为整形,输入值为整形n的函数*/
{
int c; /* 定义整数c*/
if(n==1) /* ==是逻辑等的判断*/
c=2; /*如果输入的n等于1则执行c=2*/
else c=age(n-1)+2; /*如果输入的n不等于1则执行c=agen(n-1)+2,这是个循环调用,直到n=1为止,此时c=2*/
return c; /*返回c值*/
}
main()
{
printf("第5个小朋友的年龄为%d\n",age(5)); /* 返回n=5的输出值 */
}
flowercutsjia
2011-12-07 · 超过15用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:35.5万
展开全部
这个程序是讲述的是5只小盆友互相蚕食的故事。
age(N)是一种病毒, 得病的第N只小盆友会吃掉第(N-1)只小盆友,然后年龄长2。于是,age(5)就说明了第五只小盆友吃了第四只小盆友,而第四只小盆友是吃了第三只小盆友才出现的,以此类推,直到第一只小盆友。第一只小盆友只有2岁…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4525ae5
2011-12-07
知道答主
回答量:53
采纳率:0%
帮助的人:21.5万
展开全部
age是一个递归函数,我们先从main入手。,需要输出age(5),此时调用age(5),n=5,则进入c=age(4)+2;又不知道age(4),再次调用age,此时又不知道age(3),需要调用age(2),又不知道age(1),调用age(1),此时c==2,然后再回退回去,age(2)=4,age(3)=6.age(4)=8,age(5)=10;其实这是用的堆栈方面的知识,栈是先后后出的一种数据结构,可能你更糊涂了,就先说这些吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenluma
2011-12-07 · 超过14用户采纳过TA的回答
知道答主
回答量:69
采纳率:100%
帮助的人:39.8万
展开全部
换成数学表达式就是:
age(1)=2;
age(n)=age(n-1)+2;
求age(5);
用的是递归的方式;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王汗好
2011-12-07
知道答主
回答量:3
采纳率:0%
帮助的人:3.2万
展开全部
#include "stdafx.h" %函数
int age(int n) %定义子函数
{
int c; %子函数自变量定义 C为整数
if(n==1) %条件判断 如果n等于1
c=2; %赋值 c=2
else c=age(n-1)+2; %如果n不等于2执行该程序c=age(n-1)+2
return c; 返回值 c
}
main() %主函数
{
printf("第5个小朋友的年龄为%d\n",age(5)); %输出值
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天狼的夜
2011-12-07 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:80.8万
展开全部
假设在主函数中的调用是age(k),那么在调用age()的过程中会调用age()函数k-1次(不包括主调用),直到k的值为1时,才执行if语句,将c的值赋值为2,(在这之前c的值一直是垃圾数据),然后开始age()函数的返回,调用了k-1次,那自然就要返回k-1次,else语句中c = age(n-1) + 2,就相当与c = c + 2,这样c经过k-1次重复覆盖赋值就是最终主函数的调用结果。例如:k = 5,则调用的结果是10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式