這四個零出現的原因我都不知道
完整代碼如下//本人初學,求輕噴
#include <iostream>
using namespace std;
struct rationalT{
int num,den;
};
rationalT CreateRational(int num,int den){
rationalT r;
r.num=num;
r.den=den;
return r;
}
rationalT AddRational(const rationalT &r1,const rationalT &r2){
rationalT r;
r.num=r1.num*r2.den+r1.den*r2.num;
r.den=r1.den*r2.den;
return r;
}
rationalT MultiplyRational(const rationalT &r1,const rationalT &r2){
rationalT r;
r.num=r1.num*r2.num;
r.den=r1.den*r2.den;
return r;
}
double GetRational(const rationalT &r){
double x;
x=(r.num)/(r.den);
cout<<x;
return x;
}
rationalT Reduction(const rationalT &r){
int mini=(r.num>r.den?r.den:r.num);
if(r.den==1||r.num==1)return r;
for(int i=2;i<=mini;i++){ if(r.num%i==0&&r.den%i==0){ rationalT r0; r0.num=(r.num)/i; r0.den=(r.den)/i; return Reduction(r0); }
}
return r;
}
void PrintRational(rationalT r){
r=Reduction(r);
cout<<r.num<<"/"<<r.den<<endl;
}
int main()
{
rationalT r1,r2,r3,r4;
int n1,n2,d1,d2;
cout<<"Input the num and den:";
cin>>n1>>d1;
cout<<"Input the num and den:";
cin>>n2>>d2;
r1=CreateRational(n1,d1);
r2=CreateRational(n2,d2);
r3=AddRational(r1,r2);
r4=MultiplyRational(r1,r2);
cout<<"Their addition is ";
PrintRational(r3);
cout<<",which is "<<GetRational(r3)<<endl;
cout<<"Their product is ";
PrintRational(r4);
cout<<",which is "<<GetRational(r4)<<endl;
return 0;
}

uj5u.com熱心網友回復:
函式的定義應該放在struct里面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/17528.html
標籤:基礎類
上一篇:有沒有大哥大姐大佬發個小白教程
下一篇:積分問題
