程序编译,但不返回结果。利用方法和 printf() 的二次方程程序



我是Java的新手,我希望这是一个简单的修复。我有一个我确信可以工作的程序,但我没有收到正确的计算。一些需求是利用一种求解判别的方法,并利用printf来获得精确的计算。有经验的人都知道我做错了什么吗?我有一种感觉,这与返回值有关。感谢您的时间和耐心。希望尽快收到大家的来信。

import java.util.Scanner;
public class QuadraticSolver {
public static double discriminant(double a, double b, double c){
double discriminant;
double root1;
double root2;
double imaginary;
discriminant = (b*b - 4*a*c); 

if (discriminant > 0){

root1 = (-b + Math.sqrt(discriminant)/(2*a));
root2 = (-b - Math.sqrt(discriminant)/(2*a));

System.out.println("The quadratic equation has two real solutions: ");
System.out.printf("x = %.4f" ,root1);
System.out.printf(" + %.4f%n" , root2);
} else if (discriminant == 0) {
root1 = (-b/(2*a));

System.out.println("The quadratic equation has one real solution:");
System.out.printf("x = %.4f" ,root1);
} else if (discriminant < 0) {
root1 = root2 = -b / (2 * a);
imaginary = Math.sqrt(-discriminant) / (2 * a);
System.out.println("The quadratic equation has two complex solutions: ");
System.out.printf("x = %.4f" ,root1);
System.out.printf(" + %.4f" ,imaginary);
System.out.println("i");
System.out.printf("x = %.4f" ,root2);
System.out.printf("  %.4f" ,imaginary);
System.out.println("i");
} else {
System.out.println("Wow, how did you do that?");

}
return discriminant;
}

public static void main(String[] args){

Scanner in = new Scanner(System.in);
double a, b, c, x;

System.out.println("This program is designed to solve a quadratic equation in standard form");
System.out.println("a*x^2 + b*x + c = 0 ");
System.out.println("Please enter a value for each following variable:");
System.out.println("Quadratic coefficient a: ");
a = in.nextInt();
System.out.println("Linear coefficient b: ");
b = in.nextInt();
System.out.println("Constant c: ");
c = in.nextInt();

if (a == 0){

System.out.println("Hey don't make a = 0, that's not cool man.");

}
}

}

你只需要在主函数的末尾调用函数判别式。

QuadraticSolver.discriminant(a, b, c);

看起来你错过了调用方法判别(...
你可以执行以下操作:

if (a == 0) {
System.out.println("Hey don't make a = 0, that's not cool man.");
return;
} else {
discriminant(a, b, c);
}

最新更新