注册 登录
编程论坛 新人交流区

讨论 递归算法 实现,用途?

zh76029412 发布于 2007-11-21 14:52, 1404 次点击

本题找错!!
不知道那里出问题了,请大虾,牛人多多指教,
小弟在此先谢谢了!!

#include <stdio.h>
void mian()
{
int i;
int fact();
for(i=0;i<=5;i++)
printf("\40:%d!=%d",i,fact(i));
}

int fact(j)

int j;
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1)
return sum;
}

2 回复
#2
yzzfei2007-11-21 15:29

#include <stdio.h>
void mian()//应该是main()
{
int i;
int fact();//函数里面不能定义其他函数,只能调用;
for(i=0;i<=5;i++)
printf("\40:%d!=%d",i,fact(i));//("i=%d,fact(i)=%d\n",i,fact(i));\n换行;
}

int fact(j)//函数定义应该在第一次调用之前;main()函数已经调用该函数;

int j;//参数应该在第一次使用之前定义,如int fact(int j)
{
int sum;
if(j==0)//递归调用的每个if都应该有return
sum=1;
else
sum=j*fact(j-1)
return sum;
}
下面是已经通过编译的代码:
#include <stdio.h>
int fact(int);
void main()
{
int i;
for(i=0;i<=5;i++)
printf("i=%d,fact(i)=%d\n",i,fact(i));
}
int fact(int j)
{

if(j==0)
return 1;
else
return j*fact(j-1);
}

#3
论坛元老2008-04-02 15:00
路过,顶一下
1