结果化为最简形式,
分母为1,只输出分子
结构体
选择语句
函数调用
3条回答 默认 最新
- CSDN专家-深度学习进阶 2022-03-15 18:25关注
#include<bits/stdc++.h> using namespace std; struct fraction {//分数 int up,down;//分子,分母 }; int gcd(int x,int y) { // while(y^=x^=y^=x%=y); // return x; return y?gcd(y,x%y):x; } fraction reduction(fraction result) { if(result.down<0) { result.up=-result.up; result.down=-result.down; } if(result.up==0) result.down=1;//如果分子为0,令分母为 1 else { int d=gcd(abs(result.up),abs(result.down));//分子分母的最大公约数 result.up/=d;//约去最大公约数 result.down/=d; } return result; } fraction add(fraction f1,fraction f2) {//分数f1加上分数f2 fraction result; result.up=f1.up*f2.down+f2.up*f1.down;//分子和的分子 result.down=f1.down*f2.down;//分数和的分母 return reduction(result);//返回结果分数,注意化简 } fraction minu(fraction f1,fraction f2) {//分数f1减去分数f2 fraction result; result.up=f1.up*f2.down-f2.up*f1.down;//分数差的分子 result.down=f1.down*f2.down;//分数差的分母 return reduction(result);//返回结果分数,注意化简 } fraction multi(fraction f1,fraction f2) {// 分数f1乘以分数f2 fraction result; result.up=f1.up*f2.up;//分数积的分子 result.down=f1.down*f2.down;//分数积的分母 return reduction(result);//返回结果分数,注意化简 } fraction divide(fraction f1,fraction f2) {//分数f1除以分数f2 fraction result; result.up=f1.up*f2.down;//分数商的分子 result.down=f1.down*f2.up;//分数商的分母 return reduction(result);//返回结果分数, 注意化简 } void showresult(fraction r) {//输出分数r r=reduction(r); if(r.down==1) cout<<r.up;//整数 else if(abs(r.up)>r.down) {//假分数 cout<<r.up/r.down<<" "<<abs(r.up)%r.down<<"/"<<r.down; } else cout<<r.up<<"/"<<r.down<<endl;//真分数 } int main() { fraction x,y; cin>>x.up>>x.down>>y.up>>y.down; int z; cout<<"相加:1,相减:2,相乘:3,相除:4"<<endl; cin>>z; if(z==1) showresult(add(x,y)); if(z==2) showresult(minu(x,y)); if(z==3) showresult(multi(x,y)); if(z==4) showresult(divide(x,y)); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)