用c++编写一个给分数约分的程序

 我来答
bdlanyu
推荐于2017-09-25 · TA获得超过550个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:520万
展开全部
#include <iostream>
using namespace std;

/*最简单的方法就是,分子和分母如果可以同除一个数,那么就约去这个数
直到这个除数大于分子或分母,那么这个分数就是最简的了*/
int main()
{
int n,m,max;
cout<<"输入分子:"<<endl;
cin>>n;
cout<<"输入分母:"<<endl;
cin>>m;
for(int i=2;n>=i;i++)
if(n%i==0 && m%i==0)
{
n/=i;
m/=i;
i--;
}
cout<<n<<"/"<<m<<endl;
return 0;
}
来自:求助得到的回答
841404686
2011-05-22 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:137
采纳率:100%
帮助的人:108万
展开全部
先求出分子和分母的最大公约数,用下面这段代码(m和n分别是分子和分母)
a=(m<n)?m:n;
while(1)
{if(m%a==0&&n%a==0)break;
a--;
}
最后的a就是最大公约数,再用m和n都除以a就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
点娜上宝跳13d04
2020-05-31 · TA获得超过468个赞
知道答主
回答量:20
采纳率:0%
帮助的人:1万
展开全部
#include<bits/stdc++.h>
using namespace std;
long long FGCD(long long x,long long y)//求最大公约数
{
long long _x=x,_y=y,r;
while(_y)//利用辗转法,除数为0结束
{
r=_x%_y;
_x=_y;
_y=r;
}
return _x;//返回它们的最大公约数
}
int main()
{
long long x,y;
printf("请输入一个分数(格式:分子/分母)\n");
scanf("%i/%i",&x,&y);
long long GCD=FGCD(x,y);//将GCD设为x与y的最大公约数
printf("%i/%i",x/GCD,y/GCD);//分别用x与y除以GCD
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式