ostream& operator <<(ostream& out, const Fraction& f) { out << f.numerator << "/" << f.denominator; return out; }

istream& operator >>(istream& in, Fraction& f) { char slash; in >> f.numerator >> slash >> f.denominator; f.simplify(); return in; }

Fraction operator +(const Fraction& f1, const Fraction& f2) { int num = f1.numerator * f2.denominator + f2.numerator * f1.denominator; int den = f1.denominator * f2.denominator; Fraction result(num, den); result.simplify(); return result; }

Fraction operator -(const Fraction& f1, const Fraction& f2) { int num = f1.numerator * f2.denominator - f2.numerator * f1.denominator; int den = f1.denominator * f2.denominator; Fraction result(num, den); result.simplify(); return result; }

Fraction operator *(const Fraction& f1, const Fraction& f2) { int num = f1.numerator * f2.numerator; int den = f1.denominator * f2.denominator; Fraction result(num, den); result.simplify(); return result; }

Fraction operator /(const Fraction& f1, const Fraction& f2) { int num = f1.numerator * f2.denominator; int den = f1.denominator * f2.numerator; Fraction result(num, den); result.simplify(); return result; }

Fraction operator +(const Fraction& f1, const int& i) { Fraction f2(i); return f1 + f2; }

Fraction operator -(const Fraction& f1, const int& i) { Fraction f2(i); return f1 - f2; }

Fraction operator *(const Fraction& f1, const int& i) { Fraction f2(i); return f1 * f2; }

Fraction operator /(const Fraction& f1, const int& i) { Fraction f2(i); return f1 / f2; }

Fraction operator +(const int& i, const Fraction& f2) { Fraction f1(i); return f1 + f2; }

Fraction operator -(const int& i, const Fraction& f2) { Fraction f1(i); return f1 - f2; }

Fraction operator *(const int& i, const Fraction& f2) { Fraction f1(i); return f1 * f2; }

Fraction operator /(const int& i, const Fraction& f2) { Fraction f1(i); return f1 / f2; }

int main() { Fraction f1(3, 4); Fraction f2(1, 2); Fraction f3 = f1 + f2; cout << f3 << endl; // 输出 5/4 Fraction f4 = f1 - f2; cout << f4 << endl; // 输出 1/4 Fraction f5 = f1 * f2; cout << f5 << endl; // 输出 3/8 Fraction f6 = f1 / f2; cout << f6 << endl; // 输出 3/2 Fraction f7 = f1 + 2; cout << f7 << endl; // 输出 11/4 Fraction f8 = f1 - 2; cout << f8 << endl; // 输出 -5/4 Fraction f9 = f1 * 2; cout << f9 << endl; // 输出 3/2 Fraction f10 = f1 / 2; cout << f10 << endl; // 输出 3/8 Fraction f11 = 2 + f1; cout << f11 << endl; // 输出 11/4 Fraction f12 = 2 - f1; cout << f12 << endl; // 输出 5/4 Fraction f13 = 2 * f1; cout << f13 << endl; // 输出 3/2 Fraction f14 = 2 / f1; cout << f14 << endl; // 输出 8/3 double d = f1; cout << d << endl; // 输出 0.75 Fraction f15; cin >> f15; // 输入 2/3 cout << f15 << endl; // 输出 2/3 return 0;


原文地址: https://www.cveoy.top/t/topic/dx5V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录