计算两个分数的和[C++上机作业]

题目:
定义“分数”结构体类型fraction,并编写函数计算两个分数的和

  函数原形如下:
  fraction add(fraction a ,fraction b); //计算两个分数的和,要求对结果进行化简

今天C++上机课的一道题。。
计算两个分数的和,并对结果进行化简。

  程序如下:

#include<iostream.h>
struct fraction
{
  int fenzi;
  int fenmu;
};
fraction add(fraction a ,fraction b)
{
  int i;
  for(i=1;i<=b.fenmu;i++)
    if((i*a.fenmu)%b.fenmu==0)
      break;
    int x,y;
    x=i*a.fenmu; //通分过的分母
    y=a.fenzi*i+b.fenzi*(x/b.fenmu); //通分过的分子

  int q;
  for(q=1;q<=y;q++)
    if((q*x)%y==0)
      break;
    int t,l;
    t=q*x; //通分过的分母与分子的最小公倍数
    l=x*y/t; //通分过的分母与分子的最大公约数
    if(x==y)
      cout<<"这两个分数的和为:"<<"1"<<endl;
    else
      cout<<"这两个分数的和为:"<<y/l<<"/"<<x/l<<endl;
    return (a,b);
}
void main()
{
  fraction a,b;
  cout<<"输第一个分数的分子与分母:"<<endl;
  cin>>a.fenzi>>a.fenmu;
  cout<<"输第二个分数的分子与分母:"<<endl;
  cin>>b.fenzi>>b.fenmu;
  add(a,b);
}

相关日志

发表评论