1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include "fractions.h"
void reduce_fraction (int &numerator, int &denominator)
{
for (int i = denominator * numerator; i > 1; i--) {
if ((denominator % i == 0) && (numerator % i == 0)) {
denominator /= i;
numerator /= i;
}
}
}
void add_fractions (int first_numerator, int first_denominator,
int second_numerator, int second_denominator,
int &output_numerator, int &output_denominator)
{
output_numerator = first_numerator * second_denominator
+ second_numerator * first_denominator;
output_denominator = first_denominator * second_denominator;
reduce_fraction(output_numerator, output_denominator);
}
void subtract_fractions (int first_numerator, int first_denominator,
int second_numerator, int second_denominator,
int &output_numerator, int &output_denominator)
{
output_numerator = first_numerator * second_denominator
- second_numerator * first_denominator;
output_denominator = first_denominator * second_denominator;
reduce_fraction(output_numerator, output_denominator);
}
void multiply_fractions (int first_numerator, int first_denominator,
int second_numerator, int second_denominator,
int &output_numerator, int &output_denominator)
{
output_numerator = first_numerator * second_numerator;
output_denominator = first_denominator * second_denominator;
reduce_fraction(output_numerator, output_denominator);
}
void divide_fractions(int first_numerator, int first_denominator,
int second_numerator, int second_denominator,
int &output_numerator, int &output_denominator)
{
multiply_fractions(first_numerator, first_denominator,
second_denominator, second_numerator,
output_numerator, output_denominator);
}
|