C语言 s=fun(n-1)+2 我想知道 如果n=3 s=fun(2)+2 这句表示了什么
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 20:21:05
C语言 s=fun(n-1)+2 我想知道 如果n=3 s=fun(2)+2 这句表示了什么
int fun(int n)
{
\x05int c;
\x05if (n==1)
\x05\x05c=10;
\x05else
\x05\x05c=fun(n-1)+2;(为什么会是14呢)
\x05return c;
}
main()
{
\x05int a;
\x05printf("\nPlease enter n:");
\x05scanf("%d",&a);
\x05printf("The result:%d\n\n",fun(a));
}我输入3,为什么结果是14 求分析
int fun(int n)
{
\x05int c;
\x05if (n==1)
\x05\x05c=10;
\x05else
\x05\x05c=fun(n-1)+2;(为什么会是14呢)
\x05return c;
}
main()
{
\x05int a;
\x05printf("\nPlease enter n:");
\x05scanf("%d",&a);
\x05printf("The result:%d\n\n",fun(a));
}我输入3,为什么结果是14 求分析
s = fun( n-2 ) + 2; 表示将函数fun的返回值 + 2赋给s.函数fun的形参是 n - 2.那这样n=3 s=fun(2)+2 即好理解了.具体s是多少要看函数是怎样实现的了(看函数体内容)
再问: 上面的程序为什么会等于14
再答: 你的fun函数实际上是一个递归调用的函数,下面我们来分析一下函数: 我们可以容易的看到当fun函数的形参为 1 时,函数返回 c ,而且我们知道此时c的值是10 假如现在执行语句 : s=fun(3)+2; 首先函数的形参值是3,3明显不等于1,因此函数调用fun( n - 1 ) ,,但是此时 c 的值我们好不知道,但是新调用的fun函数的形参是 2 ,当然2也不等于1,继续调用函数fun,直到某一个fun函数的形参为 1 时,我们找到一个c的值是10。这层函数就结束了,但是形参是 2 的fun函数此时未结束,进行了c = fun( 1 ) + 2;的操作,那么此时 c 等于12。fun( 1 )返回值就是12,同理,那么fun( 2 )最后返回值就是14了。 建议楼主看看有关递归调用的资料,一便更好理解
再问: 上面的程序为什么会等于14
再答: 你的fun函数实际上是一个递归调用的函数,下面我们来分析一下函数: 我们可以容易的看到当fun函数的形参为 1 时,函数返回 c ,而且我们知道此时c的值是10 假如现在执行语句 : s=fun(3)+2; 首先函数的形参值是3,3明显不等于1,因此函数调用fun( n - 1 ) ,,但是此时 c 的值我们好不知道,但是新调用的fun函数的形参是 2 ,当然2也不等于1,继续调用函数fun,直到某一个fun函数的形参为 1 时,我们找到一个c的值是10。这层函数就结束了,但是形参是 2 的fun函数此时未结束,进行了c = fun( 1 ) + 2;的操作,那么此时 c 等于12。fun( 1 )返回值就是12,同理,那么fun( 2 )最后返回值就是14了。 建议楼主看看有关递归调用的资料,一便更好理解
编写函数fun,函数首部为double fun(int n),其功能是计算S=1!+2!+3!+.+n!
#includedouble fun(double q){int n;double s,t;n=2;s=2.0;whil
一道C语言题,# include int fun (int n,int *s){int f1,f2;if (n==1||
C语言中fun(n-1)+fun(n-2)是什么意思啊
编写函数fun():S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
#include int fun(int n,int *s){int f1,f2;if(n==1IIn==2)*s=1;
int fun(char *s) { n=*s-'0';s++; while(*s!=0) {n=n*8+*s-'0';
C语言题:计算公式:s=1/1!+1/2!+1/3!+...+1/n!式中的n!表示n的阶乘
C语言编程题:S=1!+2!+3!+4!+5!+…+n!n由键盘输入
C语言 编写函数fun ,其功能是:计算并输出s = 1+(1+2(0.5))+(1+2(0.5))+3(0.5))+
输入n,用C语言计算s = 1+2+3+...+k,直到s > n为止.求此时的k
C语言s=1/n+1/(n+1)+1/(n+2)+…+1/m之和.其中:n