#include <iostream>
//#include <csting>
using namespace std;
class Fraction
{
public:
Fraction(int=1,int=1);
void output();
Fraction operator+(Fraction &p);
private:
int numerator;
int denominator;
int gcd(int,int);
};
int Fraction::gcd(int m,int n)
{
int r;
if(m<n){r=m;m=n;n=r;}
while(m%n!=0)
{
r=m%n;
m=n;
n=r;
}
/* while(r=m%n)
{
m=n;
n=r;
}*/
return n;
}
Fraction ::Fraction(int nume,int deno)
{
numerator=nume;denominator=deno;
}
void Fraction::output()
{
if(numerator*denominator<0)
cout<<"-";
if(numerator<0)
cout<<-numerator;
else
cout<<numerator;
cout<<"/";
if(denominator<0)
cout<<-denominator;
else
cout<<denominator;
}
Fraction Fraction::operator+(Fraction &p)
{
int nume,deno;
nume=numerator*p.denominator+denominator*p.numerator;
deno=denominator*p.denominator;
int num=gcd(nume,deno);
return Fraction(nume/num,deno/num);
}
int main()
{
Fraction f1(-3,8),f2(-5,-6),f3;
f3=f1+f2;
f3.output();
return 0;
}
哎 上传之后我才知道程序忘了加一点注释,以后一定注意要加注释,养成一个好的习惯。