7-33

xiaoxiao2021-02-28  31

7-33 有理数加法(15 分)

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

输入格式:

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

输出格式:

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

输入样例1:

1/3 1/6

输出样例1:

1/2

输入样例2:

4/3 2/3

输出样例2:

2

代码如下

#include <stdio.h> int main() { int a_denominator,a_numerator; int b_denominator,b_numerator; int denominator,numerator; int p,q,r; scanf("%d/%d %d/%d",&a_numerator,&a_denominator,&b_numerator,&b_denominator); denominator = a_denominator * b_denominator; numerator = a_denominator * b_numerator + b_denominator * a_numerator; if(denominator > numerator) { p = denominator; q = numerator; } else { p = numerator; q = denominator; } while(q != p - q) { r = p - q; if(q > r) { p = q; q = r; } else { p = r; } } denominator = denominator / q; numerator = numerator / q; if(denominator == 1) printf("%d",numerator); else printf("%d/%d",numerator,denominator); return 0; }
转载请注明原文地址: https://www.6miu.com/read-2623415.html

最新回复(0)