我試圖通過找到最低公分母,然後添加兩個粗俗部分在一起。但是,我的代碼不像預期的那樣運行,並且輸出兩個非常高的負數。當我將第二部分更改爲3/15時,它輸出0/0。加減粗俗部分
這裏是我的主要程序代碼:
class Program
{
static void Main(string[] args)
{
Fraction n = new Fraction(2, 4);
Fraction z = new Fraction(3, 12);
Fraction sum = n.Add(z, n);
int num = sum.Numerator;
int den = sum.Denominator;
Console.WriteLine("{0}/{1}", num, den);
Console.ReadKey(true);
}
}
這裏是我Fraction
類代碼:
internal class Fraction
{
public Fraction(int numerator, int denominator)
{
Numerator = numerator;
Denominator = denominator;
}
public int Numerator { get; private set; }
public int Denominator { get; private set; }
public Fraction Add(Fraction fraction2, Fraction fraction8)
{
int lcd = GetLCD(fraction8, fraction2);
int x = lcd/fraction8.Denominator;
int n = lcd/fraction2.Denominator;
int f2num = fraction2.Numerator*n;
int f8num = fraction8.Numerator*x;
int t = fraction2.Numerator;
Fraction Fraction3 = new Fraction(f2num+f8num,lcd);
return Fraction3;
}
public int GetLCD(Fraction b, Fraction c)
{
int i = b.Denominator;
int j = c.Denominator;
while (true)
{
if (i == j)
{
return i;
}
j = j + j;
i = i + i;
}
}
}
有用的變量名稱將是一個良好的開端 – Jonesopolis
好事OP囊括了所有的這裏使用'語句。嚴肅地說,你需要在這裏縮小這個問題的範圍。看起來你並沒有付出任何努力去調試。另外,你的變量名是可怕的。 – tnw
'GetLCD'沒有做你認爲正在做的事情。 –