博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分数的表示和运算
阅读量:4688 次
发布时间:2019-06-09

本文共 1274 字,大约阅读时间需要 4 分钟。

分数的表示和运算

#include 
#include
//分数的表示和化简struct fraction{ int up,down;}f[2];int gcd(int a,int b){ //if(b == 0) return a; //else return gcd(b,a%b); return b==0?a:gcd(b,a%b);}fraction reduction(fraction result) //分数化简 { if(result.down < 0){ result.up = -result.up; result.down = -result.down; } if(result.up == 0){ result.down = 1; } else { int d = gcd(abs(result.up),abs(result.down)); result.up /= d; result.down /= d; } return result;}fraction minus(fraction f1,fraction f2) //分数减法 { fraction result; result.up = f1.up*f2.down-f1.down*f2.up; result.down = f1.down*f2.down; return result; }fraction multi(fraction f1,fraction f2) //分数乘法 { fraction result; result.up = f1.up*f2.up; result.down = f1.down*f2.down; return result;}fraction divide(fraction f1,fraction f2) //分数除法 { fraction result; result.up = f1.up*f2.down; result.down = f1.down*f2.up; return result;}void print_r(fraction f) //显示分数 { f = reduction(f); if(f.down == 1) printf("%d\n",f.up); else printf("%d/%d\n",f.up,f.down);}int main(){ scanf("%d%d%d%d",&f[1].up,&f[1].down,&f[2].up,&f[2].down); fraction r; r=minus(f[1],f[2]); print_r(r); r=multi(f[1],f[2]); print_r(r); r=divide(f[1],f[2]); print_r(r); return 0;}

转载于:https://www.cnblogs.com/qiangz/p/8447213.html

你可能感兴趣的文章
C#匿名函数的坑
查看>>
标记页面控件尺寸
查看>>
批处理文件中的路径问题
查看>>
appium+python 环境搭建
查看>>
WampServer下修改和重置MySQL密码
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
Part2_lesson3---ARM寄存器详解
查看>>
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
python——网络编程
查看>>
Spark的39个机器学习库
查看>>
Electron学习笔记(一)
查看>>
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
查看>>
配置NRPE的通讯
查看>>
VS2005编译VTK5.10.1
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
总结上海永辉云商高级前端职位面试题集
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>