NYOJ分数加减法
2015-07-24 08:54
295 查看
/*分数加减法
描述 编写一个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*/
/*分数加减法
描述 编写一个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*/
<span style="font-size:18px;">#include<stdio.h> # define MAX # include<stdlib.h> int X(int m,int n) { int r; while(r=m%n) { m=n; n=r; } return n; } int main() { int a,b,c,d; char o; while(scanf("%d/%d%c%d/%d",&a,&b,&o,&c,&d)!=EOF) { int f1,f2; if(o=='+') {f1=a*d+b*c; f2=b*d; } else if(o=='-') { f1=a*d-b*c; f2=b*d; } if(f1==0) printf("%d\n",0); else { int c; c=X(abs(f1),abs(f2));//abs作用是求整数f1,f2的绝对值。 if(f2/c==1) printf("%d\n",f1/c); else printf("%d/%d\n",f1/c,f2/c);//具有化简的作用。 } } } </span>
相关文章推荐
- 图形图像库集合
- 分页和多条件查询功能
- Ehcache与Memcache的区别
- Golang实例001
- Ehcache与Memcache的区别
- QT QSS 使用
- JS弹出子窗口
- CentOS中JIRA6.3.6安装配置过程
- 乒乓球教程
- 浅析为什么 char 类型的范围是 : -128~+127
- Plus One
- 欢迎使用CSDN-markdown编辑器
- 斯坦福《机器学习》Lesson5感想———1、成学习算法
- HDU 2298 Toxophily(公式/三分+二分)
- leetCode(48):Excel Sheet Column Number And Excel Sheet Column Title
- leetCode(48):Excel Sheet Column Number And Excel Sheet Column Title 分类: leetCode 2015-07-24 08:51 146人阅读 评论(0) 收藏
- 我在C站的第一天
- 欢迎使用CSDN-markdown编辑器
- Servlet 工作原理解析
- sharepoint 2013创建网站集,域帐户无法访问,只有administrator可以访问