//main.cpp
#include <iostream>
#include "my_fraction.h"
int main()
{
using namespace std;
fraction A, B;
cin >> A >> B;//输入格式形如a/b,不一定最简
//输出要给出约分后的最简形式,比如1/4 + 1/4 = 1/2;0的最简形式是0/1
cout << A + B << endl;
cout << A * B << endl;
cout << A / B << endl;
if (A == B)
cout << "equal" << endl;
if (A < B)
cout << "smaller" << endl;
if (A > B)
cout << "bigger" << endl;
return 0;
}
题目描述
大概是要实现一个分数类,可以存储一个非负的分数。
需要支持如下操作(用重载运算符的形式):流读入,流输出,加法,乘法,除法(除0时会报错,比如输出一个错误信息然后exit(0)),大小比较,加乘除要返回约分后的最简形式。
Code
学生自己实现
my_fraction.h
以及相关文件,并提交makefile
。考察点
运算符重载。因为只要输出 $\Theta(1)$ 次结果,涉及约分的部分会枚举整数因数就可以了,因此没有算法上的难度。