一个关于C的问题?请教
来源:百度知道 编辑:UC知道 时间:2024/06/18 09:58:31
请帮手解释一下这个程序代码是如何执行的,特别是关于型参和实参部分!!谢谢
#include "stdio.h"
long fun(int n)
{
long s;
if((n==1)||(n==2))
s=2;
else
s=n+fun(n-1);
return s;
}
void main()
{
long x;
x=fun(4);
printf("%d\n",x);//最后X的值为什么输出会是9呢??
}
#include "stdio.h"
long fun(int n)
{
long s;
if((n==1)||(n==2))
s=2;
else
s=n+fun(n-1);
return s;
}
void main()
{
long x;
x=fun(4);
printf("%d\n",x);//最后X的值为什么输出会是9呢??
}
这是一个递归算法。
fun()函数不断的调用自己,直至n的值在1或者2.
以您给出的代码为例:
当执行x=fun(4)后,整数4就被赋予int n,如果n的值不是1或者2,那么就执行
s=n+fun(n-1); 此时n的值为4,然后fun(3)调用,重复上述过程,直至n=1,或者n=2返回S的值。
以上~~~