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;
} 展开
#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;
} 展开
3个回答
展开全部
把extern double a,b,c,d; 中的extern 去掉
更多追问追答
追问
那我为什么把main重的那个extern去掉就不行呢?我先在开头声明它们是全局变量 然后在main中定义。。。为什么这样不可以?
追答
用extern这是声明,说明在这之前已经定义过,你先声明a,b,c,d是外部变量,然后又定义肯定有问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-16
展开全部
去掉extern 就对了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询