沐沐Mnn 2019-04-28 12:06 采纳率: 72.7%
浏览 683
已结题

C++编程填空问题:分数类

描述

请实现一个分数类,使程序输出正确结果(保证运算过程中不会出现分母为0的情况)

#include <iostream>
using namespace std;
int gcd(int x, int y){
    return x%y==0?y:gcd(y,x%y);
}
class Fraction
{
    int num, den;
public:
// 在此处补充你的代码
};

int main() {
    int a,b,c;
    cin >> a >> b >> c;
    Fraction f(a, b), g(c);
    f *= g;
    cout << f << endl;
    f /= g;
    cout << f << endl;
    f = f * f;
    cout << f << endl;
    f = f / g;
    cout << f << endl;
    cout << (float) f << endl;
    return 0;
}

样例输入

3 5 7

样例输出

21/5
3/5
9/25
9/175
0.0514286

http://cxsjsx.openjudge.cn/2018midexamcloze/9/

  • 写回答

1条回答 默认 最新

  • 502203305 2019-04-28 13:46
    关注
    #include <iostream>
    using namespace std;
    int gcd(int x, int y){
        return x%y==0?y:gcd(y,x%y);
    }
    class Fraction
    {
        int num, den;
    public:
        Fraction(int x,int y=1):num(x),den(y){}
        operator float() {return 1.0*num/den;}
        Fraction &operator *(const Fraction& val){num*=val.num;den*=val.den;}
        Fraction &operator *=(const Fraction& val){num*=val.num;den*=val.den;}
        friend ostream& operator<<(ostream&out,const Fraction&val)
        {
            int t = gcd(val.num,val.den);
            out<<(val.num)/t<<'/'<<val.den/t;
            return out;
        }
        Fraction &operator /(const Fraction& val){num*=val.den;den*=val.num;}
        Fraction &operator /=(const Fraction& val){num*=val.den;den*=val.num;}
    
    };
    
    int main() {
        int a,b,c;
        cin >> a >> b >> c;
        Fraction f(a, b), g(c);
        f *= g;
        cout << f << endl;
        f /= g;
        cout << f << endl;
        f = f * f;
        cout << f << endl;
        f = f / g;
        cout << f << endl;
        cout << (float) f << endl;
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料