分数的加减乘除(C++的有理数类)
来源:互联网 发布:美丽折淘宝客助手 编辑:程序博客网 时间:2024/05/01 16:40
#include <iostream>#include <cstdio>using namespace std;class Number{int numerator,denominator;public:void input(int a,int b){ numerator=a; denominator=b;}void output(int &a,int &b){a=numerator;b=denominator;}};int fun(int a,int b){ int temp; if(a<b) { temp=a; a=b; b=temp; } while(b) { temp=a; a=b; b=temp%b; } return a;}void add(Number num1,Number num2){ int num_num1,num_num2,num_den1,num_den2; int temp,temp1,temp2; num1.output(num_num1,num_den1); num2.output(num_num2,num_den2); temp=num_den2*num_den1; temp1=num_num1*num_den2; temp2=num_num2*num_den1; temp1=temp1+temp2; int index=fun(temp1,temp); temp1=temp1/index; temp=temp/index; printf("%d/%d + %d/%d = %d/%d\n",num_num1,num_den1,num_num2,num_den2,temp1,temp);}void subtract(Number num1,Number num2){ int num_num1,num_num2,num_den1,num_den2; int temp,temp1,temp2; num1.output(num_num1,num_den1); num2.output(num_num2,num_den2); temp=num_den2*num_den1; temp1=num_num1*num_den2; temp2=num_num2*num_den1; temp1=temp1-temp2; int index=fun(temp1,temp); temp1=temp1/index; temp=temp/index; printf("%d/%d + %d/%d = %d/%d\n",num_num1,num_den1,num_num2,num_den2,temp1,temp);}void multiply(Number num1,Number num2){ int num_num1,num_num2,num_den1,num_den2; int temp1,temp2; num1.output(num_num1,num_den1); num2.output(num_num2,num_den2); temp1=num_num1*num_num2; temp2=num_den1*num_den2; int index=fun(temp1,temp2); temp1=temp1/index; temp2=temp2/index; printf("%d/%d * %d/%d = %d/%d\n",num_num1,num_den1,num_num2,num_den2,temp1,temp2);}void divide(Number num1,Number num2){ int num_num1,num_num2,num_den1,num_den2; int temp1,temp2; num1.output(num_num1,num_den1); num2.output(num_num2,num_den2); temp1=num_num1*num_den2; temp2=num_den1*num_num2; int index=fun(temp1,temp2); temp1=temp1/index; temp2=temp2/index; printf("%d/%d / %d/%d = %d/%d\n",num_num1,num_den1,num_num2,num_den2,temp1,temp2);}int main(){Number num1,num2;int n,a,b,peace=0;cout<<"please input numerator and denominator.\n";cout<<"first number:"; cin>>a>>b; num1.input(a,b); cout<<"last number:"; cin>>a>>b; num2.input(a,b);while(1) { cout<<" 1.Change numerator and denominator.\n"; cout<<" 2.Add\n"; cout<<" 3.Subtract\n"; cout<<" 4.Multiply\n"; cout<<" 5.Divide\n"; cout<<" 6.end\n"; cout<<"Please input a choose:"; cin>>n; switch(n) { case 1: cout<<"first number:"; cin>>a>>b; num1.input(a,b); cout<<"last number:"; cin>>a>>b; num2.input(a,b); break; case 2: add(num1,num2); break; case 3: subtract(num1,num2); break; case 4: multiply(num1,num2); break; case 5: divide(num1,num2); break; case 6: peace=1; break; } if(peace) break; }return 0;}
0 0
- 分数的加减乘除(C++的有理数类)
- 有理数的加减乘除
- 有理数的加减乘除
- 分数类的加减乘除
- 分数(有理数)的四则运算PAT1088
- C++_Operator Overloading(运算符重载 | 计算有理数的加减乘除)
- 计算分数的加减乘除
- 实现分数的加减乘除
- 两个分数的加减乘除
- 分数的加减乘除运算
- 分数类与整型数的加减乘除
- 第4章类与对象==有理数的类封装(分数的四则运算)
- 创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。
- 创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。
- 第八周项目三 分数类中的运算符重载-(1)分数的加减乘除
- Objective c 分数之间的加减乘除 …
- Objective c 分数之间的加减乘除 约分,最大公约数
- 第7周-项目3-分数类中的运算符重载-拓展分数的加减乘除(分数与整型 )
- 美国网站空间如何选择
- 6.1 Merge Sorted Array
- java 开发webservice
- Monkey Party - HDU 3506 四边形不等式优化
- git github gitlab 之间的区别和联系
- 分数的加减乘除(C++的有理数类)
- Java并发编程:Lock
- Android 3D旋转动画效果
- 指针形参的调用
- mPackageManager.setApplicationHiddenSettingAsUser
- iOS动画
- 动态规划问题
- php脚本超时时间设置
- ejb3中的@Schedule中的persistent属性的深入探索