#include <iostream> #include <stdio.h> using namespace std; class A { int num; int den; public: int getnum () { return num; } int getden() { return den; } A (int n,int d) { num=n; den=d; } }; int fun (int a,int b) { int temp,flag; if (a<b) { flag=a;a=b;b=flag; } while (a%b!=0) {temp=b; b=a%b; a=temp; } return b; } void add (A a1,A a2) { int x1,x2,y1,y2,k; x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden(); k=fun(x1*y2+x2*y1,y1*y2); cout<<a1.getnum()<<"/"<<a1.getden()<<"+"<<a2.getnum()<<"/"<<a2.getden()<<"="; if (((y1*y2)/k)==1) cout <<(x1*y2+x2*y1)/k<<endl; else cout <<(x1*y2+x2*y1)/k<<"/"<<(y1*y2)/k<<endl; } void difference (A a1,A a2) { int x1,x2,y1,y2,k; x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden(); k=fun(x1*y2-x2*y1,y1*y2); cout<<a1.getnum()<<"/"<<a1.getden()<<"-"<<a2.getnum()<<"/"<<a2.getden()<<"="; if (((y1*y2)/k)==1) cout <<(x1*y2-x2*y1)/k<<endl; else cout <<(x1*y2-x2*y1)/k<<"/"<<(y1*y2)/k<<endl; } void multiply (A a1,A a2) { int x1,x2,y1,y2,k; x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden(); k=fun(x1*x2,y1*y2); cout<<a1.getnum()<<"/"<<a1.getden()<<"*"<<a2.getnum()<<"/"<<a2.getden()<<"="; if (((y1*y2)/k)==1) cout <<(x1*x2)/k<<endl; else cout <<(x1*x2)/k<<"/"<<(y1*y2)/k<<endl; } void divide (A a1,A a2) { int x1,x2,y1,y2,k; x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden(); k=fun(x1*y2,y1*x2); cout<<"("<<a1.getnum()<<"/"<<a1.getden()<<")"<<"/"<<"("<<a2.getnum()<<"/"<<a2.getden()<<")"<<"="; if (((y1*x2)/k)==1) cout <<(x1*y2)/k<<endl; else cout <<(x1*y2)/k<<"/"<<(y1*x2)/k<<endl; } int main () { int x1,y1,x2,y2; printf ("please input the first numerator and denominator\n"); scanf ("%d%d",&x1,&y1); printf ("please input the second numerator and denominator\n"); scanf ("%d%d",&x2,&y2); A a1(x1,y1); A a2(x2,y2); add (a1,a2); difference (a1,a2); multiply(a1,a2); divide (a1,a2); return 0; }