-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);
}
}
正如我在標題中提到的,我的代碼不顯示任何錯誤。這個問題是一個邏輯問題。您的幫助將不勝感激。另外,請嘗試解釋您的解決方案的原因。提前致謝。
什麼是你的問題? – immibis 2015-02-11 03:14:19
'「JAVA:在我的代碼中沒有錯誤,但我沒有得到正確的答案」 - 然後在你的代碼中必須有錯誤。認真。編譯錯誤與邏輯錯誤非常混淆。你的代碼可能沒有前者,但它肯定至少有一個,如果不是更多的後者,爲此你需要使用一個調試器。 – 2015-02-11 03:15:10
你如何定義*錯誤*?您是否檢查過[繼電器#70,F組](http://www.csd.uwo.ca/~jamie/C/Debug/LectureNotes/moth.html)? – 2015-02-11 03:16:36