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