本题要求编写程序,计算N个有理数的平均值。
输入格式:
输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …
的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。
输出格式:
在一行中按照a/b
的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。
输入样例1:
4
1/2 1/6 3/6 -5/10
输出样例1:
1/6
输入样例2:
2
4/3 2/3
输出样例2:
1
数据结构: 用一个结构体表示分数,分子、分母均为int型。
对于输入的分数要随时化简防止结果溢出,化简过程即求分子分母的最大公约数,分子分母同除以最大公约数。
对于化简后的每个分数,分母累乘进行通分,累加通分后分子。最后结果ans还要进行化简。
注意:ans化简前要判断分子是否为0,若分子为0,gcd过程中会出现除数为0的情况,导致结果出现浮点错误。
#include<iostream>
#include<stdlib.h>
#inc