Home  >  Article  >  Backend Development  >  C program: Add two fractions

C program: Add two fractions

WBOY
WBOYforward
2023-08-31 10:21:041201browse

C program: Add two fractions

The given inputs are fractions, namely a/b and c/d, where a, b, c and d can be any integer value except 0. The task is to combine these two fractions are added to produce their final sum.

The fraction is represented by −

  • a / b, where a is called the numerator and b is called the denominator.
  • a and b can have any value, but b cannot be 0.
  • The sum of two fractions is expressed as a / b c / d, the rule for adding these two terms is that their denominators must be equal, if they are not equal, they should be made equal before they can be added. The Chinese translation of

Example

Input-: 1/4 + 2/12
Output-: 5/12
Since both the fractions denominators are unequal so to make them equal either GCD or LCM can be calculated. So in this case by multiplying the denominator which is 4 by 3 we can make them equal
(1 * 3) / (4 * 3) = 3 / 12
Add both the terms: 3 / 12 + 2 / 12 = 5 / 12
Input-: 1/4 + 2/4
Output-: 3/4
Since both the terms have same denominator they can be directly added

Algorithm

In function int gcd(int a, int b)
Step 1-> If a == 0 then,
   return b
Step 2-> Return gcd(b%a, a)
In function void smallest(int &den3, int &n3)
   Step 1-> Declare and initialize common_factor as gcd(n3,den3)
   Step 2-> Set den3 = den3/common_factor
   Step 3-> Set n3 = n3/common_factor
In Function void add_frac(int n1, int den1, int n2, int den2, int &n3, int &den3)
   Step 1-> Set den3 = gcd(den1,den2)
   Step 2-> Set den3 = (den1*den2) / den3
   Step 3-> Set n3 = (n1)*(den3/den1) + (n2)*(den3/den2)
   Step 4-> Call function smallest(den3,n3)
In Function int main()
   Step 1-> Declare and initialize n1=1, den1=4, n2=2, den2=12, den3, n3
   Step 2-> Call add_frac(n1, den1, n2, den2, n3, den3)
   Step 3-> Print the values of n1, den1, n2, den2, n3, den3

Example

is:

Example

#include <stdio.h>
int gcd(int a, int b) {
   if (a == 0)
      return b;
   return gcd(b%a, a);
}
void smallest(int &den3, int &n3) {
   // Finding gcd of both terms
   int common_factor = gcd(n3,den3);
   den3 = den3/common_factor;
   n3 = n3/common_factor;
}
void add_frac(int n1, int den1, int n2, int den2, int &n3, int &den3) {
   // to find the gcd of den1 and den2
   den3 = gcd(den1,den2);
    // LCM * GCD = a * b
   den3 = (den1*den2) / den3;
   // Changing the inputs to have same denominator
   // Numerator of the final fraction obtained
   n3 = (n1)*(den3/den1) + (n2)*(den3/den2);
   smallest(den3,n3);
}
// Driver program
int main() {
   int n1=1, den1=4, n2=2, den2=12, den3, n3;
   add_frac(n1, den1, n2, den2, n3, den3);
   printf("%d/%d + %d/%d = %d/%d</p><p>", n1, den1, n2, den2, n3, den3);
   return 0;
}

Output

1/4 + 2/12 = 5/12

The above is the detailed content of C program: Add two fractions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete