一个C的疑惑

来源:百度知道 编辑:UC知道 时间:2024/06/20 19:09:52
这是我做的一个二级c上机题目。编完后发现程序在visual c++ 6.0上运行结果不对:#include<stdio.h>
int fun(int n)
{
if(n!=0)
return(n*fun(--n));
else
return(1);
}
void main()
{
printf("%d\n",fun(10));
}
把fun函数中if的条件改为(n!=1)就对了。我一直想不明白,那位大侠帮帮忙解释一下啊。
这是求10!的。

你向做一个递归求阶乘的运算是吗?
#include "stdio.h"
int fact(int j)
{
int sum;
if(j == 0)
sum = 1;
else
sum= j*fact(j-1);
return sum;
}
void main()
{
printf("%d",fact(10));
}

明白没?你那个即时改为n!=1 也不对吧 你可以取几个值试下