7-58 求一元二次方程的根
求ax2+bx+c=0的根。
输入格式:
在一行给出a(\=0)、b、c三个整数的值(a非)。
输出格式:
如果有实数根,在一行从小到大顺序输出两个根,保留小数点后2位。如果是虚数根,输出两个-1。
输入样例:
1 -2 1 4 6 1 4 3 1
输出样例:
在这里给出相应的输出。例如:
1.00 1.00 -1.31 -0.19 -1 -1
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
double x1 = -1, x2 = -1;
scanf("%d %d %d", &a, &b, &c);
if ((b * b - 4 * a * c) >= 0) {
x1 = ((-b) + sqrt((b * b - 4.0 * a * c))) / (double) (2 * a);
x2 = ((-b) - sqrt((b * b - 4.0 * a * c))) / (double) (2 * a);
x1 > x2 ? printf("%.2lf %.2lf", x2, x1) : printf("%.2lf %.2lf", x1, x2);
} else {
printf("-1 -1");
}
return 0;
}
思路
- 数学题嘛不写啦