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

用c++编写一个给分数约分的程序,第1张

#include <iostream>

using namespace std

/*最简单的方法就是,分子和分母如果可以同除一个数,那么就约去这个数

直到这个除数大于猛激分子或分母,那么这个分数就是最简的了*/

int main()

{

int n,m,max

cout<<"输入物举分子:"<<endl

cin>>n

cout<<"输入分母:"<<endl

cin>>m

for(int i=2n>=ii++)

if(n%i==0 &&m%i==0)

{

n/=i

m/=i

i--

}

cout<<n<<"/罩知碧"<<m<<endl

return 0

}

楼主你世衡好!

根据你的要求实现代码消隐如下!

#include<stdio.h>

int fun(int m,int n){

int r

while(r=m%n){

m=n

n=r

}

return n

}

int main(){

int m,n,d

printf("请输入分搜桥做数:")

scanf("%d/%d",&m,&n)

d=fun(m,n)

printf("\n约分后为:%d/%d",m/d,n/d)

return 0

}

希望我的回答对你有帮助!

经过我的跟踪调试,发现你的约分方法有点问题。比如2/5 + 3/5;

经过计算会得出25/25;

约分时遇到5了,然后约分一次,但是纳握约分不会再次从头遍历数州茄樱组里面的质数(39除外),而是i继续自增了。因此约分的不彻底。

如果需要约分彻底,那么需要对约分进行检测,如果本次遍历进行了约分,那么再次从头遍历一次数组。如果本次遍历没有约分,那么就退出循册丛环。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12397387.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存