#include <iostream>
using namespace std;
struct rationalNumber{
int fenzi; // 分子
int fenmu; // 分母
};
int gcd(int x, int y)
{
return y == 0 ? x : gcd(y, x % y);
}
void reduce(struct rationalNumber & n)
{
int g = abs(gcd(n.fenzi, n.fenmu));
n.fenzi /= g;
n.fenmu /= g;
}
// 函数rnAdd:两个有理数相加
// 参数:x,y-两个有理数
// 返回值:x+y的最简分数形式
rationalNumber rnAdd(rationalNumber x, rationalNumber y);
int main()
{
char c;
rationalNumber x, y, z;
// 输入两个有理数
cin >> x.fenzi >> c >> x.fenmu;
cin >> y.fenzi >> c >> y.fenmu;
z = rnAdd(x,y); // 有理数相加
// 输出相加的结果
if(z.fenmu == 1)
cout << z.fenzi << endl;
else
cout << z.fenzi << "/" << z.fenmu << endl;
return 0;
}
// 请在此添加代码,实现函数rnAdd
/********** Begin *********/
rationalNumber rnAdd(rationalNumber x, rationalNumber y)
{
rationalNumber ret;
ret.fenzi = x.fenzi * y.fenmu + x.fenmu * y.fenzi;
ret.fenmu = x.fenmu * y.fenmu;
reduce(ret);
return ret;
}
/********** End **********/
02-16
1047

12-03
4612

10-22
2471
