C语言实验题――一元二次方程
描述
解一元二次方程ax2+bx+c=0的解。
输入
输入三个实数a,b,c的值,且a不等于0。
输出
输出两个根X1和X2,用空格隔开,具体格式为:
X1 X2
其中大的根先输出,即X1>=X2。
结果保留两位小数。数据保证一定有实根。
样例输入
样例输出
/*
解一元二次方程
*/
#include<stdio.h>
#include<math.h>
void swap(double *x,double *y)
{
double t=*x;
*x=*y;
*y=t;
}
int main()
{
double a,b,c,tai,x1,x2;
scanf("%lf %lf %lf",&a,&b,&c);
if(a<0)
a*=-1,b*=-1,c*=-1;
tai=b*b-4*a*c;
if(tai<0)
return 1;
x1=(-b+sqrt(tai))/(2*a);
x2=(-b-sqrt(tai))/(2*a);
if(x1<x2)
swap(&x1,&x2);
printf("%.2f %.2f",x1,x2);
return 0;
}