2012-12-03 135 views
-2
void quadratic() { 

    if((b*b-4*a*c) < 0){ 
     System.out.println("The answer is imaginary."); 
    } 
    else { 
     System.out.println("The two root's x values of the quadratic function " + a +"x^2 + " + b + "x + " + c + " are " 
        + (-b + Math.sqrt(b*b+4*a*c)/2a)); 
    } 
} 

我得到的錯誤爲什麼我在這裏遇到這個錯誤?

')' 預期 ';'預計

上的最後一行代碼,即使它們已被包括在內。我如何防止這種情況?任何幫助將非常感激。

+0

簡化代碼,直到問題消失。然後添加代碼直到問題重新出現。這將是明顯的問題是什麼。 –

+0

更改2a至2 * a – hoaz

+1

'2a'無效;要相乘,必須包含運算符:'2 * a'。 – Vulcan

回答

5

您2之間缺少操作員和

Math.sqrt(b*b+4*a*c)/2a 

應該是這樣的:

Math.sqrt(b*b+4*a*c)/(2*a) 
1

變化2a(2*a)

Math.sqrt(b*b+4*a*c)/(2*a) 

您還可以分解出計算的判例,以避免必須做兩次:

double discriminant = (b*b-4*a*c); 
    if(discriminant < 0){ 
     System.out.println("The answer is imaginary."); 
    } 
    else { 
     System.out.println("The two root's x values of the quadratic function " + a +"x^2 + " + b + "x + " + c + " are " 
       + (-b + Math.sqrt(discriminant)/(2*a))); 
    } 
1

你不能寫

/2a 

這是混淆解析器。我期望你想要的是

/(2 * a)