Advertisement
Aodai

Untitled

Mar 2nd, 2018
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5.  
  6. struct Rational
  7. {
  8.     int m_numerator;
  9.     int m_denominator;
  10.  
  11. };
  12.  
  13. Rational sum(Rational& n1, Rational& n2)
  14. {
  15.     Rational result = { (n1.m_numerator * n2.m_denominator) + (n1.m_denominator * n2.m_numerator), n1.m_denominator * n2.m_denominator };
  16.     return result;
  17. }
  18.  
  19. Rational sum(const Rational* pNum1, const Rational* pNum2)
  20. {
  21.     Rational result = { (pNum1->m_numerator * pNum2->m_denominator) + (pNum1->m_denominator * pNum2->m_numerator), pNum1->m_denominator * pNum2->m_denominator };
  22.     return result;
  23. }
  24.  
  25. // Greatest Common Divisor
  26. // Recursive method
  27. int gcd(int num1, int num2)
  28. {
  29.     // stop condition
  30.     if (num1 == num2)
  31.         return num1;
  32.     if (num1 > num2)
  33.         return gcd(num1 - num2, num1);
  34.     return gcd(num1, num2 - num1);
  35. }
  36.  
  37. void simplify(Rational& number)
  38. {
  39.     int greatCD = gcd(number.m_numerator, number.m_denominator);
  40.     number.m_numerator /= greatCD;
  41.     number.m_denominator /= greatCD;
  42. }
  43.  
  44. int main()
  45. {
  46.     Rational num1 = {6, 12}, num2 = {5, 10};
  47.     //sum(num1, num2);
  48.     //sum(&num1, &num2);
  49.     Rational result = sum(num1, num2);
  50.     cout << result.m_numerator << "/" << result.m_denominator << endl;
  51.     simplify(result);
  52.     cout << result.m_numerator << "/" << result.m_denominator << endl;
  53.     system("pause");
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement