main( ) {int i=5; printf("%d\n",sub(i));} sub (int n) {int a; if (n==1) a=1;else a=n+sub(n-1); }

;号后面是return(a);答案是15当n=1时,a不是等于1吗?... ;号后面是 return(a);
答案是15
当n=1时,a不是等于1吗?
展开
 我来答
ggjj741
推荐于2018-04-24 · 超过34用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:79.2万
展开全部
void main( )
{
int i=5;
printf("%d\n",sub(i));
}
int sub (int n)
{
int a;
if (n==1)
a=1;
else
a=n+sub(n-1);
return a;
}
n=1时,a=1。对的。
但是你的n是5,递归函数sub的计算就是5+4+3+2+1,返回15。
斋傲云06
2012-02-24 · TA获得超过280个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:261万
展开全部
sub (int n)这个函数是一个递归函数,是求n的一个累加,sub(5)就是求5+4+3+2+1的值,就是15!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
musen0
2012-02-24 · 超过10用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:29.5万
展开全部
你要的结果是main( ) {int i=5; printf("%d\n",sub(i));} ,这个是主函数,答案当然是15啦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hezhijian777
2012-02-24
知道答主
回答量:27
采纳率:0%
帮助的人:3.8万
展开全部
原题目是这样的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jeremy_bios
2012-02-24 · TA获得超过250个赞
知道答主
回答量:96
采纳率:0%
帮助的人:81.5万
展开全部
注意递归的用法。研究一下递归吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式