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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#include <iostream>
using namespace std;
void addfrac(int n1, int n2, int d1, int d2);
void subfrac(int n1, int n2, int d1, int d2);
void multifrac(int n1, int n2, int d1, int d2);
void dividefrac(int n1, int n2, int d1, int d2);
void prtfrac(int n1, int n2, int d1, int d2, char sign);
int main()
{
int n1, n2, d1, d2;
char line1;
char line2;
char sign;
cin >> n1 >> line1 >> n2 >> sign >> d1 >> line2 >> d2;
while(cin)
{
if(sign == '+')
{
addfrac(n1, n2, d1, d2);
}
else if(sign == '-')
{
subfrac(n1, n2, d1, d2);
}
else if(sign == '*')
{
multifrac(n1, n2, d1, d2);
}
else if(sign == '/')
{
dividefrac(n1, n2, d1, d2);
}
cin >> n1 >> line1 >> n2 >> sign >> d1 >> line2 >> d2;
}
return 0;
}
void addfrac(int n1, int n2, int d1, int d2)
{
int num, denom;
if(n2 != 0 && d2 !=0)
{
num = ((n1 * d2) + (d1 * n2));
denom = (n2 * d2);
prtfrac(n1, n2, d1, d2, '+');
}
else
cout <<"Invalid input, denominator can't be 0." << endl;
}
void subfrac(int n1, int n2, int d1, int d2)
{
int num, denom;
if(n2 != 0 && d2 != 0)
{
num = ((n1*d2) - (d1 * n2));
denom = (n2*d2);
prtfrac(n1, n2, d1, d2, '-');
}
else
cout <<"Invalid input, denominator can't be 0." << endl;
}
void multifrac( int n1, int n2, int d1, int d2)
{
int num, denom;
if(n2 !=0 && d2 != 0)
{
num = (n1 * d1);
denom = (n2 * d2);
prtfrac(n1, n2, d1, d2, '*');
}
else
cout <<"Invalid input, denominator can't be 0." << endl;
}
void dividefrac(int n1, int n2, int d1, int d2)
{
int num, denom;
if(n2 != 0 && d2 != 0)
{
num = (n1 * d2);
denom = (d1 * n2);
prtfrac(n1, n2, d1, d2, '/');
}
else
cout <<"Invalid input, denominator can't be 0." << endl;
}
void prtfrac(int n1, int n2, int d1, int d2, char sign)
{
int num, denom;
cout << n1 << " / " << n2 << " " << sign << " " << d1 << " / " << d2 << " = " << num << " / " << denom << endl;
|