这个题目的结果怎么会事120?

来源:百度知道 编辑:UC知道 时间:2024/04/25 07:15:59
#include<stdio.h>
#include<math.h>
int fact()
{
static int i=5;
if(i==0)
return 1;
else
{
return (i+1)*fact();
}
}
main ()
{
printf("fact=%d\n",fact());
}
可能是书上印错了吧,我是说不管我怎么算也得不到120这个结果!谢谢大家的发言
结果就采纳等级最低的一位吧,鼓励鼓励

楼主申请的 是静态变量 i = 5; 递归调用根本就改变不了i的值啊

也就是说永远都满足不了条件 i==0的时候啊

这个程序不是死循环嘛

死循环

我也认为满足不了 i==0

楼主你好。。。
你这个程序是个死循环。。。fact()是永远无法跳出循环的。。。
但是我无法看出你用这段程序是来运算什么的。。。如果你把这段程序的题目给我。或许我可以知道怎么解决。。。
不过我估计你是要编写一段可以计算阶层的程序。。。