首页 > 代码库 > 结构-05. 有理数均值
结构-05. 有理数均值
结构-05. 有理数均值(20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
乔林(清华大学)
本题要求编写程序,计算N个有理数的平均值。
输入格式:
输入第1行给出正整数N(<=100);第2行中按照“a1/b1 a2/b2 ……”的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。
输出格式:
在一行中按照“a/b”的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。
输入样例1:41/2 1/6 3/6 -5/10输出样例1:
1/6输入样例2:
24/3 2/3输出样例2:
1
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, r[110];13 int i, n;14 scanf("%d", &n);15 for(i = 0; i < n; i++)16 {17 scanf("%d/%d", &r[i].a, &r[i].b);18 }19 x.a = 0;20 x.b = 1;21 for(i = 0; i < n; i++)22 {23 x.a = x.a * r[i].b + x.b * r[i].a;24 x.b *= r[i].b;25 }26 x.b *= n;27 int temp, h, l;28 h = x.a > x.b ? x.a : x.b;29 l = x.a < x.b ? x.a : x.b;30 while(l)31 {32 temp = h % l;33 h = l;34 l = temp;35 }36 if(h != 0)37 {38 x.a /= h;39 x.b /= h;40 }41 if(x.a == 0)42 printf("%d\n", x.a);43 else if(x.b == 1)44 printf("%d\n", x.a);45 else46 printf("%d/%d\n", x.a, x.b);47 return 0;48 return 0;49 }
结构-05. 有理数均值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。