问答详情
源自:5-7 递归函数(一)

程序中的问题

#include <stdio.h>

int F(int n)

{

 int R;

if(n<0)

{

printf("wrong!\n");

return 0;

}

else if(n==1||n==0)

{

printf("1\n");//为什么每次都会把这个“1”输出,即使n既不等于1也不等于0?

return 1;

}

else

{

R=F(n-1)*n;

}

return R;

}

int main()

{

int n;

printf("Please input:\n");

scanf("%d",&n);

printf("%d",F(n));

}


提问者:qq_六月天_0 2016-03-13 16:25

个回答

  • night123
    2016-03-13 21:40:04
    已采纳

    因为F(n-1)*n;

    当n减到1时完成n的阶乘,同时输出1.