2015-02-11 29 views
-5

以下是可能包含問題的部分代碼。這是我的班級。JAVA:我的代碼中沒有錯誤,但我沒有得到正確的答案

private int GCD(int Num, int Denom) 
    { 
     int gcd; 
     gcd = Num % Denom; 
     if(gcd == 0) 
      return Denom; 
     else 
     { 
      return GCD(Denom, gcd); 
     } 
    } 

    public Fractions add(Fractions frac) 
    { 
     Fractions newFrac = new Fractions(); 
     this.Num = this.Num * frac.Denom; 
     this.Denom = this.Denom * frac.Denom; 
     frac.Num = frac.Num * this.Denom; 
     frac.Denom = frac.Denom * this.Denom; 
     frac.Denom = this.Denom; 
     newFrac.Denom = frac.Denom; 
     newFrac.Num = this.Num + frac.Num; 
     Denom = GCD(newFrac.Num, newFrac.Denom); 
     if (Denom == 0) 
      return newFrac; 
     else 
     { 
      newFrac.Num = newFrac.Num/Denom; 
      newFrac.Denom = newFrac.Denom/Denom; 
      return newFrac; 
     } 
    } 

下面是我爲它編寫的小演示代碼。請幫我找到問題。

public class FractionsDemo 
{ 
    public static void main(String [] args) 
    { 
     Fractions frac1 = new Fractions(); 
     Fractions frac2 = new Fractions(); 
     Fractions frac3 = new Fractions(); 

     frac1.read(); 
     frac2.read(); 

     System.out.println("The first fraction is " + frac1.Num + "/" + frac1.Denom); 
     System.out.println("The second fraction is " + frac2.Num +"/" + frac2.Denom); 


     frac3 = frac1.add(frac2); 
     System.out.println("adding the first and second results in " + frac3.Num + "/" + frac3.Denom); 



    } 

} 

正如我在標題中提到的,我的代碼不顯示任何錯誤。這個問題是一個邏輯問題。您的幫助將不勝感激。另外,請嘗試解釋您的解決方案的原因。提前致謝。

+1

什麼是你的問題? – immibis 2015-02-11 03:14:19

+2

'「JAVA:在我的代碼中沒有錯誤,但我沒有得到正確的答案」 - 然後在你的代碼中必須有錯誤。認真。編譯錯誤與邏輯錯誤非常混淆。你的代碼可能沒有前者,但它肯定至少有一個,如果不是更多的後者,爲此你需要使用一個調試器。 – 2015-02-11 03:15:10

+0

你如何定義*錯誤*?您是否檢查過[繼電器#70,F組](http://www.csd.uwo.ca/~jamie/C/Debug/LectureNotes/moth.html)? – 2015-02-11 03:16:36

回答

0

一個問題是在這裏

this.Denom = this.Denom * frac.Denom; 
    frac.Num = frac.Num * this.Denom; 

你設置this.Denom設置frac.Num之前,你必須順序切換到

frac.Num = frac.Num * this.Denom; 
    this.Denom = this.Denom * frac.Denom; 
+0

謝謝你的幫助 – jiija 2015-02-11 03:37:00

相關問題