习题
代码
#include<iostream>
using namespace std;
class Fract{
private:
int num,den;//分子,分母
public:
Fract(int num_ = 0,int den_ = 1){num = num_;den = den_;}
int Ged(int m ,int n);
Fract Add(Fract f);
void Show(){
cout << num << "/" << den << endl;
}
};
//求m n的最大公约数
int Fract::Ged(int m,int n){
int min = m > n ? n : m;
while(!(m % min == 0 && n % min == 0)){
min--;
}
return min;
}
两个分数对象相加返回分数对象 (没有看到第三条要求)
//Fract Fract::Add(Fract f){
// int new_num = f.num * this->den + this->num * f.den;
// int new_den = f.den * this->den;
// int GCD = this->Ged(new_num,new_den);
// this->num = new_num / GCD;
// this->den = new_den / GCD;
// return *this;
//}
//两个分数对象相加返回分数对象 返回f3
Fract Fract::Add(Fract f){
int new_num = f.num * this->den + this->num * f.den;
int new_den = f.den * this->den;
return Fract(new_num,new_den);
}
int main(){
Fract f1(3,4);
Fract f2(4,5);
Fract f3 = f1.Add(f2);
f3.Show();
return 0;
}
运行结果
注:第一篇C++面向对象练习题,有一些代码写的不规范的地方希望指出
版权声明:本文为hyy_sui_yuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。