问题描述
求解方程ax
2+bx+c=0的根。要求a, b, c由用户输入,并且可以为任意实数。
输入格式:输入只有一行,包括三个系数,之间用空格格开。
输出格式:输出只有一行,包括两个根,大根在前,小根在后,无需考虑特殊情况,保留小数点后两位。
输入输出样例
输入格式:输入只有一行,包括三个系数,之间用空格格开。
输出格式:输出只有一行,包括两个根,大根在前,小根在后,无需考虑特殊情况,保留小数点后两位。
输入输出样例
样例输入
2.5 7.5 1.0
样例输出
-0.14 -2.86
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typedef long long ll; /* 一开始没有比较两个根的情况 也就是没有考虑a的正负的情况,直接就是想当然 + 比 - 要大 */ int main(){ double a,b,c; while(scanf("%lf %lf %lf",&a,&b,&c)==3){ double t=sqrt(b*b-4*a*c); double x1=(-b+t)/(2.0*a); double x2=(-b-t)/(2.0*a); if(x1<x2)swap(x1,x2); printf("%.2f %.2f\n",x1,x2); } return 0; }