以下程序的运行结果是
#include”stdio.h”
main()
{printf(“FACT(5):%d\n”,fact(5));
printf(“FACT(1):%d\n”,fact(1));
fact(-5);
}
fact(int value)
{ if (value<0) {printf(“FACT(-1):Error!\n”);reurun(-1);
else if(value==1)||value==0) return(1);
else return(value*fact(value-1)); 怎么得出的结果希望能告诉的详细一点儿哦
>> 本文固定链接: http://www.vcgood.com/archives/2608
>> 转载请注明: lovenagie521 2008年08月10日 于 C语言帝国 发表
你这段代码实在是不完整,自己运行一下就知道了。撇开这个不说,这段代码是用递归函数fact()来求阶乘,在fact()内部依然存在fact(),这样的话只要条件满足要求,它就会一直进行下去。代码value*fact(value-1)就是核心部分,每一遍运算value就会减1,形成阶乘。新手回帖还请多指教。