楚雄过客 发布留言 2008-11-20 10:41
程序出错,菜人求助
递归公式:fn=fn_1*4!
#include
void main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf("\n%d!=%d",i,fact(i));
}
int fact(j)
{
int j,sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
运行有3个错误,找了很久[em14] ,请高人给指出一下,谢谢!tanlinghang 发布留言 2008-11-20 11:14
只有2个问题:
1. 函数里不用再声明 int j ,因为j已作为形式参数,对应得到的实参。
2. return sum 不对 格式是 return(sum).
完毕tanlinghang 发布留言 2008-11-20 11:21
[em13] 看来我还是太菜了·· return sum 和return(sum) 都可以 只是我习惯用后者···cyz7929 发布留言 2008-11-20 11:59
#include
void main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf("\n%d!=%d",i,fact(i));
}
int fact(j)
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}zqy110007 发布留言 2008-11-20 12:25
嗯..楼主的文件错误挺普遍的
首先,你的字定义变量是在main下面声明的,你在main之前应该有一个声明的代码,结果你写在了main里面:int fact();而且格式也错了..
然后就是自定义变量里面在形参中已经有了j,你在定义变量时就可以不要了,具体代码如下:
以下内容为程序代码: #include int fact(int j); main(){ int i; for(i=0;i<5;i++) printf("\n%d!=%d",i,fact(i)); getch(); } int fact(int j){ int sum; if(j==0) sum=1; else sum=j*fact(j-1); return sum; } |
楚雄过客 发布留言 2008-11-20 12:32
谢谢楼上的几位朋友,又学习了
页: [1]