C语言这段函数怎么理解?

#include<stdio.h>#include<stdlib.h>intfun(intn){ints;if(n<=2)s=2;elses=n+fun(n-1);ret... #include <stdio.h>
#include <stdlib.h>

int fun(int n)
{
int s;
if(n<=2) s=2;
else s=n+fun(n-1);
return s;
}
int main()
{
int k;
k=fun(5);
printf("\nk=%d",k);
return 0;
}
展开
 我来答
天雨下凡
2017-05-04 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65159
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
main函数没什么好说的,你的疑问应该是fun函数

fun函数代码实现了递归调用
int fun(int n)
{
int s;
if(n<=2) s=2;
else s=n+fun(n-1);
return s;
}
分析:
当n的值小于等于2时,s的值为2,否则,当n的值大于2时,s的值=n+fun(n-1)
看看k=fun(5);中fun(5)的执行过程:
fun(5):n=5,5>2,s=5+fun(4)
fun(4):n=4,4>2,s=4+fun(3)
fun(3):n=3,3>2,s=3+fun(2)
fun(2):n=2,2>=2,s=2
所以fun(5)=5+4+3+2=14
你的程序代码输出的结果是:k=14
ixtliu0
2017-05-04 · TA获得超过1437个赞
知道小有建树答主
回答量:784
采纳率:0%
帮助的人:305万
展开全部
经常有一层薄膜,好
追问
??????????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式