读书人

简单的递归 不知道哪里错了(每回输

发布时间: 2012-02-21 16:26:23 作者: rapoo

简单的递归 不知道错哪了(每回输入数字后怎么结果都是1啊)
# include "iostream.h"

void main()
{
int fact(int x);
int p;
int a ;
cin>>a;
p=fact(a);
cout<<p<<endl;



}
int fact(int x)
{long c;

if (x=1) c=1;
else c=x * fact(x-1);
return c;
}

[解决办法]
if(x=1)c=1 //错误

养成好习惯~ if(1==x)c=1 可以帮我们检验这种低级错误
[解决办法]
int fact(int x)
{
if (x==1) return 1;
return x * fact(x-1);

}

lz错在(x=1)这里,函数可以化简下
[解决办法]
做出来了 if语句错了啊 改为 if(i==1) 呵呵 O(∩_∩)O~ 这是常犯的错误 楼主多注意一下啦
[解决办法]
if(x=1) x=1是赋值语句,只要赋值正确,else就不会执行。
如三楼所说,可以写成if(1==x),这样一来,如果少写一个=编译器就会报错了

读书人网 >C++

热点推荐