samedi 29 novembre 2014

How to implement greatest common divisor to simplify fractions


Vote count:

0





#include <iostream>
using namespace std;

int g_c_d(int n, int d);

class Fraction
{

private:
//variables to store numerator and denominator
int num;
int denom;

public:
Fraction(){}
Fraction(int num): num(num) {}
Fraction(int num, int denom): num(num), denom(denom) {}

void set_num(int n){ num = n;}
void set_denom(int d){ denom = d;}

int get_numerator() const {return num;}
int get_denominator() const {return denom;}
};

int g_c_d(int n, int d){
return d == 0? n : g_c_d(d, n % d);
}

istream &operator>> (istream &input, Fraction &f)
{
int n, d;
char slash;
input >> n;
input >> slash;
input >> d;

if (d == 0) {n = 0;} //if denom is 0; fraction = 0/0
f = Fraction(n, d);
return input;
}

ostream &operator<<(ostream &output, const Fraction &frac)
{
return output << frac.get_numerator() << "/" << frac.get_denominator();
}


int main()
{
int n, d;
Fraction frac;

int gcd;
n = frac.get_numerator();
d = frac.get_denominator();
gcd = g_c_d(frac.get_numerator() , frac.get_denominator());

cout << "Enter a fraction" << endl;
cin >> frac;
frac.set_num(n/gcd);
frac.set_denom(d/gcd);
cout << "your fraction is: ";
cout << frac << endl;

return 0;
}


Hi im trying to simplify fractions entered by a user. However everytime I enter a fraction that is to be simplified the output returned is "1/0".


Can some one please help, it'll be massively appreciated!



asked 50 secs ago







How to implement greatest common divisor to simplify fractions

Aucun commentaire:

Enregistrer un commentaire