猿问

定义分数类,数据成员a和b表示分数的分子和分母,类中定义成员函数能够实现分数的加减乘除运算

input 首先是一个正整数n,表示有n组数据。每一组数据中由4个整形数组成,分别表示第一个分数的分子和分母和第二个分数的分子和分母。 output 两个加减乘除的结果 sampleinput 3 2 -4 3 5 1 2 3 4 4 3 2 -1 sampleoutput 1/10 11/10 -3/10 -5/6 5/4 -1/4 3/8 2/3 -2/3 10/3 -8/3 -2/3
haligongoj
浏览 3501回答 1
1回答

asd8532

#include<iostream>  #include<cmath>  using namespace std;    class fraction{ public:   int above;   int below;   void reduction();   void makeCommond(fraction&);  public:   fraction(int a=0,int b=1){    above=a;below=b;   }   fraction add(fraction);   fraction sub(fraction);   fraction mul(fraction);   fraction div(fraction);   void display();  };  void fraction::reduction(){   int a,b,temp;   if(below<0){    above=-above;    below=-below;   }   a=abs(above);   b=abs(below);   while(a%b){    temp=a;    a=b;    b=temp%b;   }   above/=b;   below/=b;  }  void fraction::makeCommond(fraction& b){   int temp;   reduction();   b.reduction();   above*=b.below;   b.above*=below;   temp=below*b.below;   below=b.below=temp;  }  fraction fraction::add(fraction b){   fraction temp;   makeCommond(b);      temp.above=above+b.above;   temp.below=below;   temp.reduction();      return temp;  }  fraction fraction::sub(fraction b){   fraction temp;   makeCommond(b);     temp.above=above-b.above;   temp.below=below;   temp.reduction();   return temp;  }  fraction fraction::mul(fraction b){   fraction temp;      temp.above=above*b.above;   temp.below=below*b.below;   temp.reduction();   return temp;  }  fraction fraction::div(fraction b){   fraction temp;   if(b.above==0){    cout<<"零不能作除数!"<<endl;    exit(1);   }   temp.above=above*b.below;   temp.below=below*b.above;   temp.reduction();   return temp;  }  void fraction::display(){   reduction();   cout<<above<<"/"<<below<<" ";  }  int main(){   int n;   cin>>n;   while(n>=1){    fraction f1,f2;    cin>>f1.above>>f1.below>>f2.above>>f2.below;     fraction f3=f1.add(f2);     fraction f4=f1.sub(f2);     fraction f5=f1.mul(f2);     fraction f6=f1.div(f2);    f3.display();    f4.display();    f5.display();    f6.display();    cout<<endl;   }   return 0;  }
随时随地看视频慕课网APP
我要回答