首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

虚心 求教,该如何处理

2012-08-02 
虚心 求教#includeiostream#includecmathusing namespace stdclass fenshu{public:int fenzi,fenmup

虚心 求教
#include<iostream>
#include<cmath>
using namespace std;
class fenshu
{
public: 
int fenzi,fenmu;
public:
  fenshu(int zi=0,int mu=0)
{
fenzi=zi;
fenmu=mu;
}

void input()
{

 
cin>>fenzi;
cin>>fenmu;

}
void set(int zi,int mu)
{
fenzi=zi;
fenmu=mu;

}
  
void output()
{ if(fenzi*fenmu>=0)
cout<<"the fenshu is:"<<abs(fenzi)<<"/"<<abs(fenmu)<<endl;
else
cout<<"the fenshu is:"<<"-"<<abs(fenzi)<<"/"<<abs(fenmu)<<endl;


}
friend fenshu add(fenshu c1,fenshu c2);
friend fenshu sub(fenshu c1,fenshu c2);
friend fenshu mul(fenshu c1,fenshu c2);
friend fenshu div(fenshu c1,fenshu c2);
friend fenshu yuefen(fenshu c);

};
fenshu yuefen(fenshu c)
{
for(int i;i<c.fenzi;){
  if(c.fenzi%i!=0&&c.fenmu%i!=0)
{
c.fenzi=c.fenzi/i;
c.fenmu=c.fenmu/i;
}
else
i++;
}
return c;
}


fenshu add(fenshu c1,fenshu c2)
{
  fenshu c3;
 c3.fenzi=c1.fenzi*c2.fenmu+c2.fenzi*c1.fenmu;
 c3.fenmu=c1.fenmu*c2.fenmu;
return yuefen(c3);
 
}

fenshu sub(fenshu c1,fenshu c2)

fenshu c3;
 c3.fenzi=c1.fenzi*c2.fenmu-c2.fenzi*c1.fenmu;
 c3.fenmu=c1.fenmu*c2.fenmu;
return yuefen(c3);
}

fenshu mul(fenshu c1,fenshu c2)
{
fenshu c3;
 c3.fenzi=c1.fenzi*c2.fenzi;
 c3.fenmu=c1.fenmu*c2.fenmu;
return yuefen(c3);
}

fenshu div(fenshu c1,fenshu c2)
{
  fenshu c3;
 c3.fenzi=c1.fenzi*c2.fenmu;
 c3.fenmu=c1.fenmu*c2.fenzi;
return yuefen(c3);
}

void menu()
{
  cout<<"1 jiafa\n";
  cout<<"2 jianfa\n";
  cout<<"3 chengfa\n";
  cout<<"4 chufa\n";
  cout<<"0 tuichu\n";

  cout<<"qing zuo nin de xuanze:"<<endl;
  cout<<"输入 1,2,3,4,或0 然后回车"<<endl;
}

int main()
{


do{
  menu();

  int choose ;  
  fenshu c1,c2,c3;
  cin>>choose;

  switch(choose)
  {
  case 1: cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();  
c3=add(c1,c2); 
  cout<<"c1+c2=";
c3.output();
break;
  case 2:cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();  
c3=sub(c1,c2); 
  cout<<"c1-c2=";
c3.output();
break;
  case 3: cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();  
c3=mul(c1,c2); 
  cout<<"c1*c2=";
c3.output();


break;
   
  case 4: cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c1.input();
cout<<"输入你要输入的数"<<endl;
cout<<"格式为x按下空格键y 然后回车"<<endl;
c2.input();  
c3=mul(c1,c2); 
  cout<<"c1/c2=";
c3.output();
break;
  case 0: exit(0);
default: cout<<"nin de xuanze cuo ,qing chongxin xuanze:";
   
  }system("pause");system("cls");
}while(1);


return 0;
}
运行不出结果 错在哪?? 该怎么写啊??

[解决办法]
用来干嘛的?
问题描述清晰一些..
[解决办法]
你这是老婆娘臭脚带----又臭又长,谁敢看?
[解决办法]
对象c1,c2,c3都没生成,当然错啦!
在main函数了加上:
 fenshu c1,c2,c3;
约分的函数有点复杂,不够简练,给你个建议:
先求分子分母的最大公约数(辗转相除法),然后分子分母同除以最大公约数.
[解决办法]

C/C++ code
fenshu yuefen(fenshu c){for(int i;i<c.fenzi;){  if(c.fenzi%i!=0&&c.fenmu%i!=0){c.fenzi=c.fenzi/i;c.fenmu=c.fenmu/i;}elsei++;}return c;} 

热点排行