分数加减法
难度: 2
描述
编写一个C程序,实现两个分数的加减法

输入
输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。

数据以EOF结束
输入数据保证合法

输出
对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
样例输入
1/8+3/8
1/4-1/2
1/3-1/3
样例输出
1/2
-1/4
0
代码示例1:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{int a,b,c,d;char o;while(scanf("%d/%d%c%d/%d",&a,&b,&o,&c,&d)!=EOF){int x,y,t,k;y=b*d;if(o=='+')x=a*d+b*c;else if(o=='-')x=a*d-b*c;k=x>y?x:y;for(int i=2;i<=sqrt(k);i++){if(x%i==0&&y%i==0){x/=i;y/=i;i=2;   //对分数化简}}if(x==0)printf("0\n");else if(y==1)printf("%d\n",x);elseprintf("%d/%d\n",x,y);}return 0;
}
代码示例2:
#include<stdio.h>
#include<stdlib.h>
int gys(int a,int b)
{int n;while(b){n=a%b;a=b;b=n;}return a;
}
int main()
{int a,b,c,d;char e;while(scanf("%d/%d%c%d/%d",&a,&b,&e,&c,&d)!=EOF){int m,n,x;x=b*d;if(e=='+')m=a*d+b*c;else if(e=='-')m=a*d-b*c;if(b==0&&d!=0)printf("%d\n",c);else if(d==0&&b!=0)printf("%d\n",a);else{n=gys(abs(m),x);int f=x/n;if(m==0)printf("0\n");else if(f==1)printf("%d\n",m/n);elseprintf("%d/%d\n",m/n,f);}}return 0;
}
ps:方法1是之前问别人才会写的,方法二是后来水题时自己写的。主要是要多考虑特殊情况。。

nyoj 分数加减法相关推荐

  1. nyoj 111 分数加减法

    分数加减法 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 2 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据  每行数据是一个字符串,格式是" ...

  2. # 异运算_小学数学整数、小数、分数加减法运算法则及练习(可打印)

    很多孩子的数学不好,尤其是女孩子.家长往往认定为数学不好就是孩子不擅长,能力差. 其实未必,有的孩子数学不好的原因并不在于智商,而是没有理解到数学的方法与逻辑.比如小学的运算中,很多孩子并没有了解到运 ...

  3. nyoj_111_分数加减法_201311281341

    分数加减法 时间限制:3000 ms  |           内存限制:65535 KB 难度:2 描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是& ...

  4. poj 3979 分数加减法

    分数加减法 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8801   Accepted: 2798 Description ...

  5. POJ3979 分数加减法【水题】

    分数加减法 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18176 Accepted: 5643 Description 编写 ...

  6. 五年级上册分数计算机,分数计算题 五年级上册分数加减法计算题(100道)

    题目: 五年级上册分数加减法计算题(100道)有口算,也要有脱式计算 解答: (1)6/14+7/14= (2)2/13+5/13= (3)6/15+9/15= (4)6/14+1/14=(5)4/1 ...

  7. java编写分数加减法_JAVA 分数加减法

    分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 编写一个C程序,实现两个分 ...

  8. 分数加减法 java,Java——分数加减法

    分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写一个C程序,实现两个分数的加减法 Input 输入包含多 ...

  9. 分数加减法 java,Java练习 SDUT-2253_分数加减法

    ###分数加减法 Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 编写一个C程序,实现两个分数的加减法 #### ...

最新文章

  1. 要想成功 需要了解的东西
  2. C语言--测试电脑存储模式(大端存储OR小端存储)
  3. (转载)Nutch2 WebPage 字段解释
  4. 深度运用LSTM神经网络并与经典时序模型对比
  5. 一个关于Angular Directive selector里的中括号使用问题
  6. 读书笔记 — Java高并发程序设计 — 第二章 — 基础(上)
  7. VS提示SurfFeatureDetector不是cv的成员函数 .
  8. 深入解读Linux内存管理系列(5)——lowmem和highmem
  9. SC/Tetra.v7-ISO 1DVD(流体模拟分析)
  10. 如何在Proteus中模拟Arduino
  11. 加州大学欧文分校 计算机专业,加州大学欧文分校排名及各专业排名
  12. 苹果手机如何深度清理_安卓手机必备清理软件APP,完全免费超级深度清理
  13. FreeTextBox编辑框遇到的问题
  14. shapely库的基础学习
  15. 2010年下半年卷烟品牌目录
  16. 电商平台退货管理教程
  17. 90.pygame游戏-玩个球(play the ball)最终版
  18. 搭便车的时候,请别把车砸了。
  19. MMA-清除所有变量的方法
  20. RNN神经网络模型综述

热门文章

  1. QQ2011捆绑并强制用户安装QQ电脑管家,小Q书桌和金山毒霸,你是什么态度?
  2. 基于卷积神经网络迁移学习的手写体汉字识别
  3. java gui 嵌入浏览器,让java gui在web浏览器中打开一个网页
  4. 【Axure教程】能增删数据的柱状图
  5. js中遍历数组加到新数组_JS几种数组遍历方式总结
  6. 卸载虚拟机出现用户已存在的错误_用虚拟机安装360全家桶是什么体验
  7. 可怕流氓:百度全家桶
  8. mcrypt拓展_PHP mcrypt加密扩展使用总结
  9. 8.C语言——位操作符与位移操作符
  10. 车辆工程专业/鼓式制动器/盘式制动器/制动系统/电磁制动器……毕业设计题目推荐