有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java程序进行编译,但不返回结果。利用方法和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.");
        
        }
    }
    
}

共 (2) 个答案

  1. # 1 楼答案

    看起来您没有调用方法鉴别器(…)
    您可以执行以下操作:

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

    您只需要在主函数末尾调用函数鉴别器

    QuadraticSolver.discriminant(a, b, c);