Esempio n. 1
0
inline void ratio_subtract (intmax_t num1
        , intmax_t den1
        , intmax_t num2
        , intmax_t den2
        , intmax_t & num
        , intmax_t & den)
{
    ratio_add(num1, den1, - num2, den2, num, den);
}
Esempio n. 2
0
ratio_s ratio_add(ratio_s left, ratio_s right) {
    return (ratio_s) {
        .numerator=left.numerator*right.denominator
                   + right.numerator*left.denominator,
                   .denominator=left.denominator*right.denominator,
                    .value=left.value + right.value
    };
}

int main() {
    ratio_s twothirds= new_ratio(2, 3);
    ratio_s aquarter= new_ratio(1, 4);
    print_ratio(twothirds);
    print_ratio(aquarter);
    print_ratio(ratio_add(twothirds, aquarter));
}
Esempio n. 3
0
inline intmax_t ratio_add_and_get_den(intmax_t num1, intmax_t den1, intmax_t num2, intmax_t den2)
{
    intmax_t num, den;
    ratio_add(num1, den1, num2, den2, num, den);
    return den;
}