标题:VC++常见问题(FAQ)
只看楼主
小人物一个
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-12-11
得分:0 
是得多学点外语啊

成功只能代表过去,能力只能适应今天,学习才能拥有将来!
2006-12-11 21:24
jxl120312
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-2-18
得分:0 
好贴
可惜没数据库的相关内容.
我现在在做个数据库
有一大堆问题都不知道怎么解决.
2006-12-13 23:04
beysbc
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-1-7
得分:0 
很多都是无法找到该页

建议重新编辑!
2007-01-07 21:21
wosuiniqunba
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-1-13
得分:0 
对不起,我想请问一下,为什么以下的程序总是显示m是redefinition?
#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);
n=n+2;
s2=fun1(n+2);
if((s1!=-1)&&(s2!=-1))
{
cin>>s1>>s2;
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(int s1,int s2)
{ int m,
m=s1+s2;
return m;
}
谢谢你的帮助
2007-01-13 16:33
wyzn12
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-10-28
得分:0 
以下是引用wosuiniqunba在2007-1-13 16:33:28的发言:
对不起,我想请问一下,为什么以下的程序总是显示m是redefinition?
#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);
n=n+2;
s2=fun1(n+2);
if((s1!=-1)&&(s2!=-1))
{
cin>>s1>>s2;
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(int s1,int s2)
{ int m,
m=s1+s2;
return m;
}
谢谢你的帮助

m重定义了啊,main()和add()函数里你都定义了m,把其中一个改了就可以了


新王登基,血流成河!
2007-01-24 15:41
flyqq
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-3-11
得分:0 
good ,your english are both good
expect you1

2007-03-11 17:29
zfeidy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-26
得分:0 

我的妈妈哟!
我还没过4级!
把这看完真费了我好大的劲!


我已上帝的名誉发誓:我就是上帝
2007-03-26 19:17
zfeidy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-26
得分:0 

我要快点学英语了哦
不然4级就挂了哦

[此贴子已经被作者于2007-3-26 19:56:59编辑过]


我已上帝的名誉发誓:我就是上帝
2007-03-26 19:42
zfeidy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-26
得分:0 
回复:(wosuiniqunba)对不起,我想请问一下,为什么...
对不起,我想请问一下,为什么以下的程序总是显示m是redefinition?
#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);
n=n+2;
s2=fun1(n+2);
if((s1!=-1)&&(s2!=-1))
{
cin>>s1>>s2;
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(int s1,int s2)
{ int m,
m=s1+s2;
return m;
}
谢谢你的帮助


你的程序有几个问题:
1:你声明的add(long,long)型,而定义的是add(int,int)型;
2:我不知道你的这句话做什么用的cin>>s1>>s2;这个是输入数字的,可你前面已经计算出来这两个值了,要是再输入,也就没什么意义了,所以这句话要删出。
3:你的此段函数

long add(int s1,int s2)
{ int m,
m=s1+s2;
return m;
}

的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编辑过]


我已上帝的名誉发誓:我就是上帝
2007-03-26 19:55
帅得不敢出门
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-10-12
得分:0 
这里面的E文高手真多

诚交广大C/C++/VC++编程爱好者 有兴趣的加群24372952
2007-03-27 21:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-77468-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.953953 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved