C++中分数求和的算法

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:13:57
最好用面向过程法写下完整的程序,在下不胜感激!

#include<iostream>
using namespace std;
int MaxFactor(int nr,int dr)//用来寻找最大公因子,欧几里德算法
{
int th=nr,tl=dr;
if(nr<dr)
{th=dr;tl=nr;}
if(th%tl==0)
return tl;
else
return MaxFactor(tl,th%tl);
}
int main()
{
int n1,n2,d1,d2;
int nr,dr,t;
char c;
cout<<"请分别输入两个分数,用a/b c/d的形式"<<endl;//输入两个分数
cin>>n1>>c>>d1;
cin>>n2>>c>>d2;
dr=d1*d2;//计算新分数的分母
nr=d1*n2+d2*n1;//计算新分数的分子
if(nr%dr==0)//结果如果是整数,就直接输出整数
cout<<"结果为:"<<nr/dr<<endl;
else//否则先约分在输出最终结果
{
t=MaxFactor(nr,dr);//找最大公因子
dr/=t;
nr/=t;//分子分母分别约分至最简
cout<<"结果为:"<<nr<<'/'<<dr<<endl;
}
return 0;
}

#include<iostream>
using namespace std;

int main(){
cout<<"请输入两个分数:"<&