C语言实验——一元二次方程Ⅰ
Problem Description
解一元二次方程ax2+bx+c=0的解。保证有解
Input
a,b,c的值。
Output
两个根X1和X2,其中X1>=X2。 结果保留两位小数。
Example Input
1 5 -2
Example Output
0.37 -5.37
代码:
#include <stdio.h>
#include <math.h>
double f(double a, double b, double c);
double h(double a, double b, double c);
int main()
{
double a, b, c, temp;
double x1, x2;
scanf("%lf%lf%lf", &a, &b, &c);
x1 = f(a, b, c);
x2 = h(a, b, c);
if(x1 < x2)
{
temp = x1;
x1 = x2;
x2 = temp;
}
printf("%.2lf %.2lf\n", x1, x2);
return 0;
}
double f(double a, double b, double c)
{
double y;
y = (-b +sqrt(b * b - 4 * a * c))/(2 * a);
return y;
}
double h(double a, double b, double c)
{
double y;
y = (-b - sqrt(b * b - 4 * a * c))/(2 * a);
return y;
}