首页 新闻 搜索 专区 学院

诚恳请教c++有关的问题

0
悬赏园豆:10 [已关闭问题]

请问下面的代码如何改为重载分数的运算符

#include<iostream>
using namespace std;
class fraction
{
public:
     fraction(int mm,int nn);
     
 void setfraction (int a,int b){fenzi=a;fenmu=b;}
    void display(){cout<<"分子/分母="<<fenzi<<'/'<<fenmu<<endl;}
private:
 int fenzi,fenmu;
};
fraction::fraction(int mm,int nn)
{
fenzi=mm;fenmu=nn;
if(fenmu==0) cout<<"此分数没有意义!请重新输入!"<<endl;
if(fenmu<0) cout<<"分母不能为负数!请重新输入!"<<endl;

int a;
 
 if(fenzi>0)
   if(fenzi>=fenmu)
   {
    for(a=fenmu;a>=0;a--)
     if(fenzi%a==0)
      if(fenmu%a==0)
      {fenzi=fenzi/a;fenmu=fenmu/a;break;}
   }
   else
   {
    for(a=fenzi;a>=0;a--)
     if(fenzi%a==0)
      if(fenmu%a==0)
      {fenzi=fenzi/a;fenmu=fenmu/a;break;}
   }
 if(fenzi<0)
     if(-fenzi>=fenmu)
   {
    for(a=fenmu;a>=0;a--)
     if(fenzi%a==0)
      if(fenmu%a==0)
      {fenzi=fenzi/a;fenmu=fenmu/a;break;}  
    for(a=-fenzi;a>=0;a--)
     if(fenzi%a==0)
      if(fenmu%a==0)
      {fenzi=fenzi/a;fenmu=fenmu/a;break;}
   }
     
}
   
int main()
{
fraction x(10,6);
x.display(); 
x.setfraction (10,6);
x.display();
 


}

从这里开始启程的主页 从这里开始启程 | 初学一级 | 园豆:185
提问于:2010-06-15 10:38
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册