结构-02. 有理数加法

结构-02. 有理数加法(15)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
乔林(清华大学)

本题要求编写程序,计算两个有理数的和。

输入格式:

输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。

输出格式:

在一行中按照“a/b”的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。

输入样例1:
1/3 1/6
输出样例1:
1/2
输入样例2:
4/3 2/3
输出样例2:
2
 1 #include<stdio.h>
 2 #include<math.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 int main()
 6 {
 7     struct rational
 8     {
 9         int a;
10         int b;
11     };
12     rational x, y;
13     scanf("%d/%d %d/%d", &x.a, &x.b, &y.a, &y.b);
14     int i, m, n, k;
15     m = x.a * y.b + y.a * x.b;
16     n = x.b * y.b;
17     k = m % n;
18     if(k == 0)
19         printf("%d
", m / n);
20     else
21     {
22         int p, q, temp;
23         p = m > n ? m : n;
24         q = m < n ? m : n;
25         while(q)
26         {
27             temp = p % q;
28             p = q;
29             q = temp;
30         }
31         printf("%d/%d
", m / p, n / p);
32     }
33 }
原文地址:https://www.cnblogs.com/yomman/p/4243020.html