酷代码 AI
菜单
服务商

C++实现有理数类:重载四则与比较运算符并按格式输出

```cpp #include <iostream> class Rational { private: int numerator; int denominator; void simplify() { int gcd = __gcd(numerator, denominator); numerator /= gcd; denominator /= gcd; if (denominator < 0) { numerator = -numerator; denominator = -denominator; } } public: Rational(int num = 0, int den = 1) { numerator = num; denominator = (den > 0)? den : 1; simplify(); } Rational operator+(const Rational& other) { int newNumerator = numerator * other.denominator + other.numerator * denominator; int newDenominator = denominator * other.denominator; Rational result(newNumerator, newDenominator); return result; } Rational operator-(const Rational& other) { int newNumerator = numerator * other.denominator - other.numerator * denominator; int newDenominator = denominator * other.denominator; Rational result(newNumerator, newDenominator); return result; } Rational operator*(const Rational& other) { int newNumerator = numerator * other.numerator; int newDenominator = denominator * other.denominator; Rational result(newNumerator, newDenominator); return result; } Rational operator/(const Rational& other) { int newNumerator = numerator * other.denominator; int newDenominator = denominator * other.numerator; Rational result(newNumerator, newDenominator); return result; } bool operator==(const Rational& other) { return numerator == other.numerator && denominator == other.denominator; } bool operator!=(const Rational& other) { return!(*this == other); } bool operator>=(const Rational& other) { return numerator * other.denominator >= other.numerator * denominator; } bool operator>(const Rational& other) { return numerator * other.denominator > other.numerator * denominator; } bool operator<=(const Rational& other) { return numerator * other.denominator <= other.numerator * denominator; } bool operator<(const Rational& other) { return numerator * other.denominator < other.numerator * denominator; } friend std::ostream& operator<<(std::ostream& os, const Rational& r) { if (r.denominator == 1) { os << r.numerator; } else { os << r.numerator << "/" << r.denominator; } return os; } }; int main() { int num1, den1, num2, den2; std::cout << "please enter rational number a (numerator denominator format):" << std::endl; std::cin >> num1 >> den1; std::cout << "please enter rational number b (numerator denominator format):" << std::endl; std::cin >> num2 >> den2; Rational a(num1, den1); Rational b(num2, den2); std::cout << "the output results are as follows:" << std::endl; std::cout << a << " + " << b << " = " << a + b << std::endl; std::cout << a << " - " << b << " = " << a - b << std::endl; std::cout << a << " * " << b << " = " << a * b << std::endl; std::cout << a << " / " << b << " = " << a / b << std::endl; std::cout << a << " == " << b << " : " << (a == b) << std::endl; std::cout << a << "!= " << b << " : " << (a!= b) << std::endl; std::cout << a << " >= " << b << " : " << (a >= b) << std::endl; std::cout << a << " > " << b << " : " << (a > b) << std::endl; std::cout << a << " <= " << b << " : " << (a <= b) << std::endl; std::cout << a << " < " << b << " : " << (a < b) << std::endl; return 0; } ``` ######[AI写代码神器 | 1099点数解答 | 2024-11-09 19:20:32]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]