求一元二次方程的根
首先,我们需要判断 a是否大于 0,然后 判断 b^2-4ac>0
1、b^2-4ac>0 表示有二个不同的解。
2、b^2-4ac=0 表示有1个解。
3、b^2-4ac<0 表示无解。
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a,b,c,disc,p,q;
cin>>a>>b>>c;
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
cout<<"x1="<<p+q<<endl;
cout<<"x2="<<p-q<<endl;
system("pause");
return 0;
}
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a,b,c,disc,p,q;
cin>>a>>b>>c;
if(fabs(a)<=1e-6) cout<<"这个不是一个一元二次方程";
disc=b*b-4*a*c;
p=-b/(2*a);
if(fabs(disc)<=1e-6){
cout<<"有两个相同的根"<<p<<endl;
}
else if(disc>1e-6){
q=sqrt(disc)/(2*a);
cout<<"x1="<<p+q<<endl;
cout<<"x2="<<p-q<<endl;
}
else{
float realpart=-b/(2*a);
float imagpart=sqrt(-disc)/(2*a);
cout<<"两个共轭复根:"<<realpart<<'+'<<imagpart<<"i, "<<realpart<<'-'<<imagpart<<"i\n";
}
system("pause");
return 0;
}