题目描述
利用公式 :
求一元二次方程 ax^2+bx+c=0的根,其中 a 不等于 0。结果要求精确到小数点后 5 位。
输入格式
输入一行,包含三个浮点数 a,b,c(它们之间以一个空格分开),分别表示方程 ax^2+bx+c=0 的系数。
输出格式
输出一行,表示方程的解。
若两个实根相等,则输出形式为:x1=x2=aaaa
;
若两个实根不等,在满足根小者在前的原则,则输出形式为:x1=aaaa;x2=bbbb
;
若无实根输出 No answer!
。
所有输出部分要求精确到小数点后 5 位,数字、符号之间没有空格。
输入输出样例
输入 #1复制
-15.97 19.69 12.02
输出 #1复制
x1=-0.44781;x2=1.68075
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,d,x1,x2;
scanf("%lf %lf %lf",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("No answer!");
else if(d==0)
printf("x1=x2=%.5lf",-b/(2*a));
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(x1<x2)
printf("x1=%.5lf;x2=%.5lf",x1,x2);
else
printf("x1=%.5lf;x2=%.5lf",x2,x1);
}
return 0;
}