在Java中,我们可以使用Scanner类从键盘获取输入,然后使用公式(-b±sqrt(b^2-4ac))/(2a)来求解一元二次方程的根。以下是一个满足你要求的Java程序:
import java.util.Scanner;
import java.lang.Math;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double[] eqn = new double[3];
double[] roots = new double[2];
try {
System.out.println("请输入一元二次方程的三个系数a、b、c(用空格或回车分隔):");
for (int i = 0; i < 3; i++) {
eqn[ i] = scanner.nextDouble();
}
} catch (Exception e) {
System.out.println("Wrong Format");
return;
}
int numRoots = solveQuadratic(eqn, roots);
if (numRoots == 0) {
System.out.println("The equation has no roots");
} else if (numRoots == 1) {
System.out.printf("The equation has one root: %.4f\
", roots[0]);
} else {
System.out.printf("The equation has two roots: %.4f and %.4f\
", roots[0], roots[1]);
}
}
public static int solveQuadratic(double[] eqn, double[] roots) {
double a = eqn[0], b = eqn[1], c = eqn[2];
double discriminant = b * b - 4 * a * c;
if (discriminant < 0) {
return 0;
} else if (discriminant == 0) {
roots[0] = -b / (2 * a);
return 1;
} else {
roots[0] = (-b + Math.sqrt(discriminant)) / (2 * a);
roots[1] = (-b - Math.sqrt(discriminant)) / (2 * a);
return 2;
}
}
}
在这个程序中,我们首先从键盘获取一元二次方程的三个系数a、b、c。然后,我们调用solveQuadratic方法来求解方程的根,并将根的数量返回。最后,我们根据根的数量来输出相应的信息。如果输入的数据格式错误,我们会捕获异常并输出“Wrong Format”。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案 |