成功只能代表过去,能力只能适应今天,学习才能拥有将来!
m重定义了啊,main()和add()函数里你都定义了m,把其中一个改了就可以了
你的程序有几个问题:
1:你声明的add(long,long)型,而定义的是add(int,int)型;
2:我不知道你的这句话做什么用的cin>>s1>>s2;这个是输入数字的,可你前面已经计算出来这两个值了,要是再输入,也就没什么意义了,所以这句话要删出。
3:你的此段函数
的m后面的逗号改成分号就好了,其实m并没有重复定义。所以35楼的回答错了。
4:你的程序可以改成这样的:
#include <iostream >
using namespace std;
long fun1 (int);
long add (long,long);
int main()
{
int n,s1,s2, m;
cout <<"please input a number "<<endl;
cin >>n;
s1=fun1(n);
s2=fun1(n+2); //要是求n+2,这样就好了
if((s1!=-1)&&(s2!=-1))
{
m=add(s1,s2);
cout <<"m="<<m<<endl;
}
return 0;
}
long fun1(int n)
{
long f;
if(n<0)
{
cout <<"the data is error"<<endl;
return -1;
}
else if(n==0||n==1)f=1;
else f=n*fun1(n-1);
return f;
}
long add(long s1,long s2)
{
return(s1+s2);
}
[此贴子已经被作者于2007-3-26 20:04:34编辑过]