• 结构-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:
    4
    1/2 1/6 3/6 -5/10
    
    输出样例1:
    1/6
    
    输入样例2:
    2
    4/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
    ", x.a);
    43   else if(x.b == 1)
    44     printf("%d
    ", x.a);
    45   else
    46     printf("%d/%d
    ", x.a, x.b);
    47   return 0;
    48     return 0;
    49 }
  • 相关阅读:
    C++ 虚成员函数和动态联编
    C++ 多态公有继承
    C++ 继承特性
    C++ 公有派生
    C++ 基类与派生类
    C++ 类继承
    C++ 伪私有方法
    C++ new失败
    mysql用户授权
    linux时间设置
  • 原文地址:https://www.cnblogs.com/yomman/p/4248256.html
Copyright © 2020-2023  润新知