#include <iostream>
#include <stdio.h>
using namespace std;
class A {
int num;
int den;
public:
int getnum ()
{
return num;
}
int getden()
{
return den;
}
A (int n,int d)
{
num=n;
den=d;
}
};
int fun (int a,int b)
{
int temp,flag;
if (a<b)
{
flag=a;a=b;b=flag;
}
while (a%b!=0)
{temp=b;
b=a%b;
a=temp;
}
return b;
}
void add (A a1,A a2)
{
int x1,x2,y1,y2,k;
x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden();
k=fun(x1*y2+x2*y1,y1*y2);
cout<<a1.getnum()<<"/"<<a1.getden()<<"+"<<a2.getnum()<<"/"<<a2.getden()<<"=";
if (((y1*y2)/k)==1)
cout <<(x1*y2+x2*y1)/k<<endl;
else
cout <<(x1*y2+x2*y1)/k<<"/"<<(y1*y2)/k<<endl;
}
void difference (A a1,A a2)
{
int x1,x2,y1,y2,k;
x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden();
k=fun(x1*y2-x2*y1,y1*y2);
cout<<a1.getnum()<<"/"<<a1.getden()<<"-"<<a2.getnum()<<"/"<<a2.getden()<<"=";
if (((y1*y2)/k)==1)
cout <<(x1*y2-x2*y1)/k<<endl;
else
cout <<(x1*y2-x2*y1)/k<<"/"<<(y1*y2)/k<<endl;
}
void multiply (A a1,A a2)
{
int x1,x2,y1,y2,k;
x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden();
k=fun(x1*x2,y1*y2);
cout<<a1.getnum()<<"/"<<a1.getden()<<"*"<<a2.getnum()<<"/"<<a2.getden()<<"=";
if (((y1*y2)/k)==1)
cout <<(x1*x2)/k<<endl;
else
cout <<(x1*x2)/k<<"/"<<(y1*y2)/k<<endl;
}
void divide (A a1,A a2)
{
int x1,x2,y1,y2,k;
x1=a1.getnum();y1=a1.getden();x2=a2.getnum();y2=a2.getden();
k=fun(x1*y2,y1*x2);
cout<<"("<<a1.getnum()<<"/"<<a1.getden()<<")"<<"/"<<"("<<a2.getnum()<<"/"<<a2.getden()<<")"<<"=";
if (((y1*x2)/k)==1)
cout <<(x1*y2)/k<<endl;
else
cout <<(x1*y2)/k<<"/"<<(y1*x2)/k<<endl;
}
int main ()
{
int x1,y1,x2,y2;
printf ("please input the first numerator and denominator\n");
scanf ("%d%d",&x1,&y1);
printf ("please input the second numerator and denominator\n");
scanf ("%d%d",&x2,&y2);
A a1(x1,y1);
A a2(x2,y2);
add (a1,a2);
difference (a1,a2);
multiply(a1,a2);
divide (a1,a2);
return 0;
}
分数的四则运算(c++)
最新推荐文章于 2024-06-08 23:27:08 发布