我編寫的是一個非常簡單的二次方程求解器,但即使平方根爲正值,答案也保持不變(我使用的例子是1x^2 + 5x + 6,其中b^2 = 25和4 * a * c = 24),但它仍然是南。請幫忙。二次方程求解器nan平方根正數
import java.util.*;
import java.lang.Math;
public class HelloWorld {
public static void main (String[] args){
System.out.println ("type quadratic equation please use format ax^2+/-bx+/-c");
Scanner userInput=new Scanner(System.in);
String userEquation=userInput.next();
char a=(userEquation.charAt(0));
char b=(userEquation.charAt(5));
char c=(userEquation.charAt(8));
System.out.println(a);
System.out.println(b);
System.out.println(c);
double p1=4*a*c;
double p2=2*a;
double p3=-b;
double p4=b*b;
double p5=p4-p1;
double p6=Math.sqrt(p5);
double pa7=-b+p6;
double pb7=-b-p6;
double pa8=pa7/2*a;
double pb8=pb7/2*a;
System.out.println("x1= "+pa8+ " x2="+pb8);
}
}
最好向用戶提供3個輸入,而不是依賴他輸入正確的方程式格式,但這與您的問題無關;) –
只需打印您的臨時變量,您就會看到問題。提示:'char'!='int'或'double'。 –
節省大量時間並熟悉使用調試器。幾乎任何IDE都有一個,它們非常易於使用。調試器允許您逐行執行程序並檢查所有變量的值。例如,您會立即注意到程序中的「a」是「49」而不是「1」。 – WhiteViking