一道c++编程题 求大神解答!急!

c++编程题编写程序,实现比较两个分数的大小。要求:用子函数实现比较。先比较两个数的分母,分母相同比较分子;否则通分后比较(用c++编)最好程序能超过25行,请在程序中每... c++编程题 编写程序,实现比较两个分数的大小。要求:用子函数实现比较。先比较两个数的分母,分母相同比较分子;否则通分后比较(用c++编)最好程序能超过25行,请在程序中每行都注明解释,请把结果发到我的邮箱里443824913@qq.com 悬赏20啦!好的话追加悬赏!
不方便发邮箱,写在下面也好,感谢!
展开
 我来答
redstone100
2012-06-28 · TA获得超过159个赞
知道小有建树答主
回答量:245
采纳率:100%
帮助的人:92.1万
展开全部
#include <iostream>
using namespace std;void func(int a,int b,int x,int y);int main(){ int a,b,x,y; cout<<"请输入第一个数分子"<<endl; cin>>a; cout<<"请输入第一个数分母"<<endl; cin>>b; while (!b) { cout<<"分母不能为零"<<endl; cout<<"请输入分母"<<endl; cin>>b; } cout<<"请输入第二个数分子"<<endl; cin>>x; cout<<"请输入第二个数分母"<<endl; cin>>y; while (!y) { cout<<"分母不能为零"<<endl; cout<<"请输入分母"<<endl; cin>>y; } func(a,b,x,y); system("pause"); return 0; }void func(int a,int b,int x,int y){ if (b==y) { if (a>x) { cout<<a<<"/"<<b<<"大于"<<x<<"/"<<y<<endl; } else cout<<a<<"/"<<b<<"小于"<<x<<"/"<<y<<endl; } else { if (a*y>x*b) { cout<<a<<"/"<<b<<"大于"<<x<<"/"<<y<<endl; } else cout<<a<<"/"<<b<<"小于"<<x<<"/"<<y<<endl; }}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunnyapi
2012-06-29 · TA获得超过1031个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:364万
展开全部
经过上机验证没有问题哦 百度最近的格式总是会乱 格式调了半天…………好累啊

#include <stdio.h>
//用于求最小公倍数的函数
int lcm(int m, int n)
{
int i,t;
if(m<n)
{
t=m;
m=n;
n=t;
}
for(i=m;i>=1;i++)
if(i%m==0&&i%n==0)//判断整除是这么判断的
break;
return i;
}
//用于返回比较分数结果的子函数
int cmp(int x,int y,int z,int w)
{
int symbol;
int gongbeishu;//最小公倍数
int fenzi1;//通分后的第一个分子
int fenzi2;//通分后的第二个分子
if(y==w)
{
if(x>z)
symbol=1;
else if(x==z)
symbol=0;
else
symbol=-1;
}
else
{
gongbeishu=lcm(y,w);
fenzi1=x*gongbeishu/y;
fenzi2=z*gongbeishu/w;
if(fenzi1>fenzi2)
symbol=1;
else if(fenzi1==fenzi2)
symbol=0;
else
symbol=-1;
}
return symbol;
}
int main (void)
{
int a;//第一个数字的分子
int b;//第一个数字的分母
int c;//第二个数字的分子
int d;//第二个数字的分母
int s;
printf("input 第一个数字的分子:\n");
scanf("%d",&a);
printf("input 第一个数字的分母:\n");
scanf("%d",&b);
printf("input 第二个数字的分子:\n");
scanf("%d",&c);
printf("input 第二个数字的分母:\n");
scanf("%d",&d);
s=cmp(a,b,c,d);
switch(s)
{
case 1:
printf("第一个分数%d/%d大于第二个分数%d/%d\n",a,b,c,d);
break;
case 0:
printf("第一个分数%d/%d等于第二个分数%d/%d\n",a,b,c,d);
break;
case -1:
printf("第一个分数%d/%d小于第二个分数%d/%d\n",a,b,c,d);
break;
default:
printf("something is wrong!");
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文库地摊
2012-06-28 · TA获得超过1195个赞
知道小有建树答主
回答量:663
采纳率:100%
帮助的人:399万
展开全部
int compareFenshu(int iFenzi1, int iFenmu1, int iFenzi2, int iFenmu2)
// 参数: 第一个分数的分子, 分母, 第二个分数的分子,分母
{
if(iFenmu1 != iFenmu2) // 先判断分母是否相等, 如果不相等,先通分
{
iFenzi1*=iFenmu2; // 不必考虑是否是最小公倍数, 分子分别乘以对方的分母
iFenzi2*=iFenmu1;
}// 因为函数只在乎比较大小, 所以通分之后分母是多少不必计算
if(iFenzi1>iFenzi2) return 1;
if(iFenzi1<iFenzi2) return -1;
return 0;
}
干嘛要超过25行啊, 12行能解决问题的, 多了累赘了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cczz1952
2012-06-28
知道答主
回答量:13
采纳率:0%
帮助的人:11.5万
展开全部
原题是?
分数要自己定义分数类?
写了一半了,很迟了,就没写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式