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