算法提高 Quadratic Equation

问题描述
  求解方程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;
}

猜你喜欢

转载自blog.csdn.net/qq_36424540/article/details/80343769
今日推荐