C++程序老是提示我有4个无法解析的外部命令,可能是全局变量出问题了,但是我觉着没什么问题呀 求指教

#include<iostream>#include<cmath>usingnamespacestd;externdoublea,b,c,d;doublef(double... #include<iostream>
#include<cmath>
using namespace std;
extern double a,b,c,d;
double f(double x)
{
return(a*x*x*x+b*x*x+c*x+d);
}
double xpoint(double x1,double x2)
{
double x;
x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return(x);
}
double root(double x1,double x2)
{
double p;

do
{
p=xpoint(x1,x2);
if(f(x1)*f(p)<0)
{x2=p;p=x1;x1=x2;x2=p;}
else {x1=p;p=x2;x2=x1;x1=p;}
}while(fabs(x2-x1)>1e-7);
return(x1);
}
int main()
{
extern double a,b,c,d;
cout<<"please input a,b,c,d:";
cin>>a>>b>>c>>d;
double x1,x2;
do
{
cout<<"please input x1,x2:";
cin>>x1>>x2;
}while(f(x1)*f(x2)>0);
cout<<root(x1,x2)<<endl;
return 0;
}
展开
 我来答
喝多了跑偏
2013-09-16 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:114万
展开全部
我知道是4个,而且分别是a,b,c,d没有符号。大哥extern double a,b,c,d;是声明,不是让誉定义。枝清你要想这么写就改成extern double a = 0,b = 0,c = 0,d = 0;要不就猛滑前把extern去掉,都行。
tool_in_kit
2013-09-16 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:19.6万
展开全部
把extern double a,b,c,d; 中的extern 去掉
更多追问追答
追问
那我为什么把main重的那个extern去掉就不行呢?我先在开头声明它们是全局变量 然后在main中定义。。。为什么这样不可以?
追答
用extern这是声明,说明在这之前已经定义过,你先声明a,b,c,d是外部变量,然后又定义肯定有问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-16
展开全部
去掉extern 就对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式