首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的递归 不知道哪里错了(每回输入数字后如何结果都是1啊)

2012-02-21 
简单的递归不知道错哪了(每回输入数字后怎么结果都是1啊)# include iostream.hvoid main(){int fact(int

简单的递归 不知道错哪了(每回输入数字后怎么结果都是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),这样一来,如果少写一个=编译器就会报错了

热点排行