Description
编程计算并输出一元二次方程ax^2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b^2-4ac>0)。
Input
输入三个实数,以空格隔开。
Output
按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐
Sample Input
2 6 1
Sample Output
-0.18 -2.82
HINT
注意%m.nf的作用
Source
#include<stdio.h>
#include<math.h> //math.h中相关数学函数的声明
int main(void)
{
double a, b, c; //定义double类型变量
double x1, x2; // 定义double类型变量x1,x2存储方程的两个实根
double s;
scanf("%lf%lf%lf", &a, &b, &c); //读入系数
s = sqrt(b * b - 4 * a * c); // 为书写表达式方便,首先计算sqrt(b * b - 4 * a * c)存入变量s
x1 = (-b + s) / (2 * a); //按求根公式计算x1
x2 = (-b - s) / (2 * a); //按求根公式计算x2
printf("%7.2f%7.2f\n", x1, x2 ); //注意输出顺序,另外每个数值7列,不要多空格
return 0;
}