本题要求编写程序,计算N个有理数的平均值。输入第一行给出正整数N(≤100);第二行中按照​​a1/b1 a2/b2 …​​的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。在一行中按照​​a/b​​的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。

#include<stdio.h>

int gcd(int p,int q)

{

if (q==0) return p;

int r = p%q;

return gcd(q,r);

}

int main()

{

int N,sumA=0,sumB=1;

scanf("%d",&N);


for(int i=0; i<N; i++)

{

int a=0,b=1;

scanf("%d/%d",&a,&b);

sumA *= b;

sumA += a*sumB;

sumB *= b;


if(i==N-1) sumB*=N;

int divisor = gcd(sumA,sumB);

sumA/=divisor;sumB/=divisor;

}



if (sumA==0)

printf("0");

else if(sumB==1)

printf("%d",sumA);

else

printf("%d/%d",sumA,sumB);


return 0;

}

有理数均值_i++