满意答案
buukq
推荐于 2018.03.26
采纳率:47% 等级:9
已帮助:764人
#include
using namespace std;
class Rational
{
private:
int numeraror;//分子
int denominator;//分母
int x(int a,int b)
{
while(a=a%b)swap(a,b);
return b;
}
public:
Rational():numeraror(0),denominator(1){}
Rational(int a):numeraror(a),denominator(1){ }
Rational(int a,int b)
{
int n = x(a,b);
numeraror = a/n;
denominator = b/n;
}
operator double()
{
return (double)numeraror/denominator;
}
const Rational operator+(const Rational& t)
{
return Rational(
this->numeraror * t.denominator + t.numeraror * this->denominator,
this->denominator * t.denominator
);
}
const Rational operator-(const Rational& t)
{
return Rational(
this->numeraror * t.denominator - t.numeraror * this->denominator,
this->denominator * t.denominator
);
}
const Rational operator*(const Rational& t)
{
return Rational(
this->numeraror * t.numeraror,
this->denominator * t.denominator
);
}
const Rational operator/(const Rational& t)
{
return Rational(
this->numeraror * t.denominator ,
t.numeraror * this->denominator
);
}
friend ostream& operator<
void show(){cout<
void showf(){cout<
};
ostream& operator<
{
os<
if(r.denominator!=1)os<
return os;
}
int main()
{
cout<
cout<
cout<
<
Rational a(2,3),b;
b = Rational(1,6);
cout<
a.showf();
cout<
b.show();
cout<
cout<
cout<
cout<
return 0;
}
10分享举报