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;
} 展开
#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;
} 展开
2个回答
2017-05-04 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数: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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询