-
描述
-
编写一个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
#include<iostream> using namespace std; inline int hcf(int a, int b) { int r = 0; while (b != 0) { r = a%b; a = b; b = r; } return (a > 0?a:(-a)); } int main() { int a, b, c, d, z; string s; while (cin >> s) { int f = 0, m = 0; a = s[0] - '0'; b = s[2] - '0'; c = s[4] - '0'; d = s[6] - '0'; m = b*d; if (s[3] == '+') f = a*d + c*b; else f = a*d - c*b; if (f == 0) cout << 0 << endl; else if (m == f) cout << 1 << endl; else { z = hcf(m, f); if (f%m == 0) cout << f / m << endl; else cout << f / z << "/" << m / z << endl; } } return 0; }
-
输入包含多行数据
NYOJ-111-分数加减法
最新推荐文章于 2023-01-03 10:49:56 发布