题目描述
一元二次方程的一般形式:ax2+bx+c=0。
输入a、b、c,求方程的根。
输出要求:
方程有两个相同实根,比如x2+2x+1=0,输出结果为:x1=x2=-1.00
方程有两个不同实根,先输出较小实根,空格隔开,比如x2+2x-3=0,输出结果为:x1=-3.00 x2=1.00
方程没有实根,输出文字No solution
实型数据小数点后保留两位。
输入
一行:3个实型数据,空格隔开。
输入数据保证a>0。
输出
一行:按题目要求输出。
样例输入 Copy
1 2 -3
样例输出 Copy
x1=-3.00 x2=1.00
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
float a,b,c,d,x1,x2;
cin>>a>>b>>c;
d=b*b-4*a*c;
cout.precision(2);
cout.setf(ios::fixed);
if(d>=0)
{
if(d>0){x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);
cout<<"x1="<<x1<<" x2="<<x2<<endl;}
else cout<<"x1=x2="<<-b/(2*a)<<endl;
}else cout<<"No solution"<<endl;
return 0;
}