求助,为什么显示<<这个符号总是有错误
//=====================================
//一元二次方程根
//=====================================
#include<iostream>
#include<math.h>
using namespace std;
//-------------------------------------
void main(){
double a,b,c;
double x1,x2;
double d=b*b-4*a*c;
double f=sqrt(d);
cout<<"Please input a,b,c:"<<"\n";
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
cout<<"c=";
cin>>c;
if(a==0)
{cout<<"该方程不是一元二次方程"<<"\n";
if(b==0)
cout<<"该方程不成立"<<"\n";
else
cout<<"该方程的根为x1=x2= "<< -c/b <<"\n";}
if(a!=0 )
{if(d < 0)
cout<<"该方程无解"<<"\n";
else
{ if(d==0)
cout<< " 该方程的根相等x1=x2= "<< x1=-b/(2*a) << "\n";
else
cout<<"该方程的根为: "<<"x1 = "<<x1=(-b+f)/( 2*a)<<"x2 = "<<x2=(-b-f)/(2*a); }
}
}//====================================
这是求一元二次方程的程序,最后这个<<符号总是不对,上网查了自己也不是很懂,求助
[解决办法]
<<的优先级比=要高
最后一句应该是这样的吧:
cout<<"该方程的根为: "<<"x1 = "<<(-b+f)/( 2*a)<<"x2 = "<<(-b-f)/(2*a); }
还有倒数第二个cout那句:
cout<< " 该方程的根相等x1=x2= "<< -b/(2*a) << "\n";
[解决办法]
拿出来赋值
if(d==0)
{
x1=-b/(2*a);
cout<< " 该方程的根相等x1=x2= "<<x1<<-b/(2*a)<< "\n";
}
else
{
x1=(-b+f)/( 2*a);
x2=(-b-f)/(2*a);
cout<<"该方程的根为: "<<"x1 = "<<x1<<(-b+f)/( 2*a)<<"x2 = "<<x2<<(-b-f)/(2*a);
}
[解决办法]
操作符优先级问题,<< 比 = 优先级高。将相应的表达式用括号括起来。
[解决办法]
double d=b*b-4*a*c;
这句要放到a,b,c;输入之后,否则d是一个随机数
所以就一直误解啊!建议LZ多看看书,本人强力推荐范磊老师的零起点学通c++ 视频
网上都有的下!
希望对你又用
[解决办法]
什么乱七八糟的格式,看到那些大括号括号都不想看下去了。。。
建议if else最好不要省略大括号,还有写代码的时候注意排版问题,至少有一个统一的风格。。。