在c ++中添加和减去分数的代码是什么?

时间:2012-06-26 00:36:52

标签: c++

我编写了一个程序来对分数进行乘法,除法,加法和减法。我只是无法弄清楚加法和减去它们的公式。它会是什么?

到目前为止我的代码:

   Fraction subtractFractions(Fraction numDen, Fraction numDen2)
{
Fraction value;
value.numerator=numDen.numerator-numDen2.numerator;
if(numDen.denominator!=numDen2.denominator){
    value.denominator=numDen2.denominator/numDen.denominator;
    value.numerator*=value.denominator;
    value.denominator*=value.denominator;
    value.numerator=numDen.numerator-numDen2.numerator;
}
return value;
}

正如你所看到的......在函数中..我的加法和减法函数都是相同的代码,所以我刚发布了一个

2 个答案:

答案 0 :(得分:11)

我假设您以int a,int b格式存储数字以表示a / b。如需添加,您需要:

a1    a2   a1*b2+a2*b1
--  + -- = -----------
b1    b2      b1*b2

减法以相同的方式工作。下一步,你应该考虑如何减少分数。

答案 1 :(得分:3)

a/b - c/d = (ad - bc) / bd

然后你需要把它减少到最低的条件(如果你关心的话)。