问题

通过键盘输入系数a,b,c,求一元二次方程的实根,要求判断有无实根

训练提示

$$
ax^2+bx+c=0,a\neq 0 \
\Delta=b^2-4ac \
If \quad \Delta \geq 0 \quad Then \
\quad x_1=\displaystyle \frac{-b+\sqrt{b^2-4ac}}{2a} \
\quad x_2=\displaystyle \frac{-b-\sqrt{b^2-4ac}}{2a} \
$$

参考答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class help {
public static void main(String[] args) {
// 通过键盘输入系数a,b,c
// 定义个扫描器
Scanner sc = new Scanner(System.in);

// 提示下用户
System.out.println("请您输入a,b,c:");

// 接收用户输入的三个系数
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();

// 判断用户输入的a是否等于0
if (a != 0) {
// 求一元二次方程的实根
// 判别式判断是两个实根,一个实根还是无实根
// ((Math.pow(b, 2)) - (4 * a * c))
// b * b - 4 * a * c
double temp = ((Math.pow(b, 2)) - (4 * a * c));
// double temp = (b * b) - (4 * a * c);
if (temp > 0) {
// 有两个实数根
double x1 = ((-b) + Math.sqrt(temp)) / (2 * a);
double x2 = ((-b) - Math.sqrt(temp)) / (2 * a);
System.out.println(x1);
System.out.println(x2);
} else if (temp == 0) {
// 有一个实数根
double x1 = ((-b) + Math.sqrt(temp)) / (2 * a);
System.out.println(x1);
} else {
// 没有实数根
System.out.println("没有实数根");
}
} else {
System.out.println("a不能等于0");
}
}
}