分数加减法

时间限制:3000 ms  |           内存限制:65535 KB
难度: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
来源
水题比赛
上传者
hzyqazasdf
 #include <stdio.h>

 int gcd(int a,int b)
{
int i,t;
if(a>b)
{
t=a;a=b;b=t;
}
while(a)
{
i=a;
a=b%a;
b=i;
}
return b;
} int main()
{
char s[];
while(gets(s))
{
int i;
int a,b1,b2;
int t1,t2;
//printf("%d\n",gcd(6,4));
a=(s[]-'')*(s[]-'')/gcd((s[]-''),(s[]-''));
b1=a/(s[]-'')*(s[]-'');
b2=a/(s[]-'')*(s[]-'');
if(s[]=='-'){
if(b1<b2)
{
t1=b2-b1;
t2=gcd(t1,a);
if(t1==)
printf("%d\n",);
else
{
printf("-");
printf("%d/%d\n",t1/t2,a/t2);
}
}
else
{
t1=b1-b2;
t2=gcd(t1,a);
if(t1==)
printf("%d\n",);
else
printf("%d/%d\n",t1/t2,a/t2);
}
}
else
{
t1=b2+b1;
t2=gcd(t1,a);
if(t1%a==)
printf("%d\n",t1/a);
else
printf("%d/%d\n",t1/t2,a/t2);
}
}
return ;
}

简单题

最新文章

  1. 两行代码搞定 JavaScript 的日期验证
  2. linux 安装一些命令
  3. SQL SERVER 导出数据,数据与结构,结构
  4. WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展
  5. json写入和读取代码
  6. 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
  7. hadoop学习笔记:hadoop文件系统浅析
  8. linux系统启动oracle
  9. Stream流的读取使用
  10. 用Spring提高java观察者模式灵活性
  11. Java Reference 源码分析
  12. require 增量更新与版本管理
  13. RGB转MIPI CSI芯片方案TC358746XBG
  14. 在 WPF 中如何在控件上屏蔽系统默认的触摸长按事件
  15. phpstorm 配置git上传代码到 码云
  16. node.js之爬虫
  17. 记第二届CCPC全国女生赛参赛体验
  18. 《JavaScript设计模式与开发》笔记 1.面向对象的JavaScript
  19. C. Classy Numbers
  20. elasticsearch系列五:搜索详解(查询建议介绍、Suggester 介绍)

热门文章

  1. java静态代理实例
  2. P2924 [USACO08DEC]大栅栏Largest Fence
  3. 多物体运动框架案例一:多个Div的宽度运动变化
  4. 【知识总结】线性筛_杜教筛_Min25筛
  5. Tomcat发布项目,域名访问
  6. zblog实现后台导航栏增加链接功能的最简单方法
  7. (转)Vue 爬坑之路(三)—— 使用 vue-router 跳转页面
  8. Android sensor 系统框架 (二)
  9. Anaconda——Python包管理工具
  10. Mongodb 重置密码或创建用户