| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 311 人关注过本帖
标题:一个有关分数类的程序,运行结果不正确,请指教!
只看楼主 加入收藏
星罗棋布的
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-3-17
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:1 
一个有关分数类的程序,运行结果不正确,请指教!
#include<iostream>
using namespace std;
class Fenshu

{
public:
    Fenshu(){}
    Fenshu(int,int);
     
    int gcd();
    Fenshu operator+(Fenshu c);
    Fenshu operator-(Fenshu c);
    Fenshu operator*(Fenshu c);
    Fenshu operator/(Fenshu c);
    void display(){cout<<fenzi<<"/"<<fenmu<<endl;}
private:
    int fenzi,fenmu;
};
Fenshu::Fenshu(int myfenzi,int myfenmu)
{
    fenzi=myfenzi;
    fenmu=myfenmu;
}
int Fenshu::gcd()
{
     
  
      if(0 == fenzi)
      {
          return fenmu;
      }
      if( 0 == fenmu)
      {
          return fenzi;
      }
      if(fenmu > fenzi)
      {
          int c = fenzi;
          fenzi = fenmu;
          fenmu= c;

         
      }
      int t;
      for(t = fenzi% fenmu ; t > 0  ; t = fenzi % fenmu)
      {
          fenzi = fenmu;
          fenmu = t;
      }
      return fenmu;
  }




Fenshu Fenshu::operator +(Fenshu c)
{
    Fenshu temp;
    temp.fenzi=fenzi*c.fenmu+c.fenzi*fenmu;
    temp.fenmu=fenmu*c.fenmu;
    temp.fenzi=temp.fenzi/temp.gcd();
    temp.fenmu=temp.fenmu/temp.gcd();
    return temp;
}
Fenshu Fenshu::operator-(Fenshu c)
{
    Fenshu temp;
    temp.fenzi=c.fenzi*fenmu-c.fenmu*fenzi;
    temp.fenmu=c.fenmu*fenmu;
    temp.fenzi=temp.fenzi/(temp.gcd());
    temp.fenmu=temp.fenmu/(temp.gcd());
    return temp;

}
Fenshu Fenshu::operator *(Fenshu c)
{
    Fenshu temp;
    temp.fenzi=fenzi*c.fenzi;
    temp.fenmu=fenmu*c.fenmu;
    temp.fenzi=temp.fenzi/(temp.gcd());
    temp.fenmu=temp.fenmu/(temp.gcd());
    return temp;
}
Fenshu Fenshu::operator /(Fenshu c)
{
    Fenshu temp;
    if(temp.fenmu!=0&&c.fenmu!=0)
        temp.fenzi=fenzi*c.fenmu;
        temp.fenmu=fenmu*c.fenzi;
        temp.fenzi=temp.fenzi/(temp.gcd());
        temp.fenmu=temp.fenmu/(temp.gcd());
        return temp;
     
         
}
int main()
{
    Fenshu c1(2,20),c2(3,30);
    Fenshu c;
    cout<<"c1=";
    c1.display();
    cout<<"c2=";
    c2.display();
    c=c1+c2;
    cout<<"c1+c2=";
    c.display();
    c=c1-c2;

    cout<<"c1=";
    c1.display();
    cout<<"c2=";
    c2.display();
    c=c1-c2;
    cout<<"c1-c2=";
    c.display();
    c=c1*c2;
    cout<<"c1*c2=";
    c.display();
    return 0;
}
搜索更多相关主题的帖子: display private void include 
2012-05-18 21:31
ZJQLOVELYY
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:105
专家分:166
注 册:2011-8-1
收藏
得分:10 
哎,还真是简洁呢。。代码一贴说运行不正确就完事了。。。
2012-05-19 09:31
快速回复:一个有关分数类的程序,运行结果不正确,请指教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028238 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved