#includelong fun(int n){if(n>1)return (n*fun(n-1));return 1;}main(){printf("10!=%1d\n",fun(10));}这里的return 能纤细的说下么.如果求的是10!n>1,什么时候结束叠乘?如果按一楼,是不是就是相当于else return

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 14:42:53

#includelong fun(int n){if(n>1)return (n*fun(n-1));return 1;}main(){printf("10!=%1d\n",fun(10));}这里的return 能纤细的说下么.如果求的是10!n>1,什么时候结束叠乘?如果按一楼,是不是就是相当于else return
#include
long fun(int n)
{
if(n>1)
return (n*fun(n-1));
return 1;
}
main()
{
printf("10!=%1d\n",fun(10));
}
这里的return
能纤细的说下么.
如果求的是10!
n>1,什么时候结束叠乘?
如果按一楼,是不是就是相当于else return

#includelong fun(int n){if(n>1)return (n*fun(n-1));return 1;}main(){printf("10!=%1d\n",fun(10));}这里的return 能纤细的说下么.如果求的是10!n>1,什么时候结束叠乘?如果按一楼,是不是就是相当于else return
if(n>1)
return (n*fun(n-1));
是一个 if 语句.很明显,如果 n 大于 1,则 执行 return (n*fun(n-1)); 否则就执行下面的语句.
因为 main 函数里调用的是 fun(10); 所以对于 fun 函数,入口参数 n 等于10;10 大于 1,所以执行 return (n*fun(n-1)); 又调用了 fun(9).
就这样一直调用到 fun(1); 此时 n > 1 不成立,所以不执行
return (n*fun(n-1));
而是执行下一句 return 1; 这样就返回到上一层 fun(2) 的return语句处,即
return ( 2 * fun( 1 ) ); fun(2) 继续向上返回,直到 fun(10);

多一句嘴,从代码风格看,我猜你大概看的是谭浩强的书吧.老谭的书过时了,内容已经非常陈旧了.劝你不要看了.
main() 这种形式过时了,现在应该写成
int main(void)
{
return 0;
}
这种形式.
而且main 函数之前还要写 函数原型.
推荐你用 C Primer Plus 入门,网上有中文版pdf.你可以和谭浩强的书对照着看,看看哪本书好.我认为比老谭的书强多了.

#includelong fun(int n){if(n>1)return (n*fun(n-1));return 1;}main(){printf(10!=%1d ,fun(10));}这里的return 能纤细的说下么.如果求的是10!n>1,什么时候结束叠乘?如果按一楼,是不是就是相当于else return fun和int fun 的区别 fun和int fun 的区别 STU*fun(STU a[],int C语言int(*fun)( )和 int* fun()的区别?C语言int(*fun)( )和 int* fun()的区别? void main() {int t=1;fun(fun(t));} fun(int h) {stvoid main(){int t=1;fun(fun(t));}fun(int h){static int a[3]={1,2,3}; int k; for(k=0;k double fun(int i,double x,double 那句int (*a)()=fun, #include stdio.h double fun(int m) { // } 以下选项均为fun函数定义的头部,其中错误的是 .以下选项均为fun函数定义的头部,其中错误的是 .A.int fun(int x,int y[ ]) B.int fun(int x,int y[x])C.int fun(int x,int y[3]) D.int fun(int x,int *y) 以下函数的正确定义形式是( )A double fun(int x,int y) B.double fun(int x;int y) C.double fun(int x,int y); D.double fun(int x,y); 8、以下正确的函数定义是A)double fun(int x ,int y) B)double fun(int x ; int y)C)double fun(int x ,int y) ; D)double fun(int x,y) 以下正确的函数定义形式是?A.double fun(int x,int y) B.double fun(int x;int y) C.double fun(int x,int y) D.double fun(int x,y) 数学建模编程相关请大家帮我看看这是用那个软件运行的程序:#include#include#includelong factorial(int m){ int i; long n=1;for(i=1,i main() {int t=1;fun(fun(t));} fun(int h){static int a[3]={1,2,3};int k; for(k=0;k 这个程序的运算过程是怎么样的啊 小弟迷茫 请大哥大姐们帮忙#includelong sum(int a,int b);long factorial(int n);main(){int n1,n2;long a;scanf(%d%d,&n1,&n2);a=sun(n1,n2);printf(a=%1d,a);}long sum(int a,int b){long c1,c2;c1=f fun(int k) {if(k>0)fun(k-1) printf(%d,k); } main() {int w=5; fun(w); } void fun(int *a,int n) { int i,j,k,t; for(i=0;i