求一元二次方程ax2+bx+c=0的根。
输入格式:
输入三个用空格隔开的实数a、b、c,分别表示一元二次方程的系数,并保证a不为0。
输出格式:
在一行中输出方程的实根,每个根占宽度15,保留5位小数,右对齐,如果有两个相同的实根,只需要输出一个数,如果有两个不同的实根,按从小到大的顺序输出;如果没有实根,请输出字符串“No Answer”。
输入样例:
2 3 -6
结尾无空行
输出样例:
-2.63746
求一元二次方程ax2+bx+c=0的根。
输入格式:
输入三个用空格隔开的实数a、b、c,分别表示一元二次方程的系数,并保证a不为0。
输出格式:
在一行中输出方程的实根,每个根占宽度15,保留5位小数,右对齐,如果有两个相同的实根,只需要输出一个数,如果有两个不同的实根,按从小到大的顺序输出;如果没有实根,请输出字符串“No Answer”。
输入样例:
2 3 -6
结尾无空行
输出样例:
-2.63746
这例子给的不太对吧
#include<stdio.h>
#include<math.h>
int main(){
double a,b,c,x1,x2,d;
scanf("%lf %lf %lf",&a,&b,&c);
d = b*b-4*a*c;
if(d<0){
printf("No Answer");
}else if(d==0){
x1=-b/(2*a);
printf("%15.5f",x1);
}else{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf("%15.5f%15.5f",x1,x2);
}
return 0;
}