2012-06-26 3 views
-5

Я написал программу для умножения, деления, добавления и вычитания дробей. Я просто не могу понять, что формула будет добавлять и вычитать. Что бы это могло быть?Каким будет код для добавления и вычитания дробей в 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; 
} 

Как вы можете see..its в function..my складывать и вычитать функции и тот же код, так что я просто разместил один

+9

То же, что и при добавлении или вычитании фракций на бумаге. –

+1

Покажите нам, что вы сделали до сих пор, и где вы застряли, и мы сможем дать некоторые указатели. –

+0

Ваша цель сохранить их в дробной форме? Это менее тривиально. – cheeken

ответ

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

Тогда вам нужно уменьшить это до наименьших условий (если вам это интересно).

8

Я предполагаю, что вы храните числа в формате int a, int b, для представления a/b. Для добавления вам необходимо:

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

вычитание работает таким же образом. В качестве следующего шага вам следует подумать о том, как уменьшить фракции.

+1

Ох, красивая асьзия фракция искусство! +1 –

Смежные вопросы