[英]Java Program To Solve The Quadratic Equation Does Not Work
我正在使用課程來嘗試完成這項任務,我覺得計算機認為我把數字弄亂了,而且它們沒有按正確的順序解決。
二次亞軍
import java.util.Scanner;
import static java.lang.System.*;
public class QuadraticRunner
{
public static void main( String[] args )
{
Scanner keyboard = new Scanner( System.in );
out.print("Enter a :: ");
int quadA = keyboard.nextInt();
out.print("Enter b :: ");
int quadB = keyboard.nextInt();
out.print("Enter c :: ");
int quadC = keyboard.nextInt();
Quadratic test = new Quadratic();
System.out.println( test.getRootOne( quadA,quadB,quadC ) );
System.out.println( test.getRootTwo( quadA,quadB,quadC ) );
}
}
二次方
public class Quadratic
{
public static double getRootOne( int a, int b, int c )
{
double Quad = (b*b)-(4*a*c);
double sqrt = Math.sqrt(Quad);
Quad = ((double)Quad + b);
Quad = ((double)Quad/(2*a));
return Quad;
}
public static double getRootTwo( int a, int b, int c )
{
double Quad = (b*b)-(4*a*c);
double sqrt = Math.sqrt(Quad);
Quad = ((double)Quad - b);
Quad = ((double)Quad/(2*a));
return Quad;
}
}
當我嘗試將數字插入程序時,數字為 1、1、1,結果為 Root 1 = -1.0 Root 2 = -2.0
您的代碼中有兩個小錯誤:
sqrt
變量(應該在方法的第 3 行中使用)b +/- sqrt(...)
而不是sqrt(...) +/- b
)我想這應該給你正確的答案:
public class Quadratic {
public static double getRootOne(int a, int b, int c) {
double quad = (b*b)-(4*a*c);
double sqrt = Math.sqrt(quad);
quad = (b + (double) sqrt); //original: ((double)quad + b);
quad = ((double)quad/(2*a));
return quad;
}
public static double getRootTwo(int a, int b, int c) {
double quad = (b*b)-(4*a*c);
double sqrt = Math.sqrt(quad);
quad = (b - (double) sqrt); //original: ((double)quad - b);
quad = ((double)quad/(2*a));
return quad;
}
}
import java.util.Scanner;
import static java.lang.System.*;
public class QuadraticRunner
{
public static void main( String[] args )
{
Scanner keyboard = new Scanner( System.in );
out.print("Enter a :: ");
int quadA = keyboard.nextInt();
out.print("Enter b :: ");
int quadB = keyboard.nextInt();
out.print("Enter c :: ");
int quadC = keyboard.nextInt();
System.out.println( Quadratic.getRootOne( quadA,quadB,quadC ) );
System.out.println( Quadratic.getRootTwo( quadA,quadB,quadC ) );
}
public class Quadratic
{
public static double getRootOne( int a, int b, int c )
{
double Quad = (b*b)-(4*a*c);
double sqrt = Math.sqrt(Quad);
Quad = ((double)Quad + b);
Quad = ((double)Quad/(2*a));
return Quad;
}
public static double getRootTwo( int a, int b, int c )
{
double Quad = (b*b)-(4*a*c);
double sqrt = Math.sqrt(Quad);
Quad = ((double)Quad - b);
Quad = ((double)Quad/(2*a));
return Quad;
}
}
}
在上面的代碼中,您應該使用 class 名稱而不是 object,因為您創建了一個測試以將 static 方法調用到公共 static void main 方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.