Wanna be a star? 乐学 lexue 北京理工大学

背景:

在歌手大奖赛中,经常会有一组评委给参赛选手打分(一般采取百分制)。选手最终得分的获取规则是:去掉一个评委给的最高分,去掉在一个评委给的 最低分,其余分数加和的平均值。需要说明的是,如果同时有多个评委给出最低分,那么只去掉一个最低分;同样的,如果同时有多个评委给出最高分,那么只去掉 一个最高分。现在即将召开2016年度青年歌手大奖赛,组委会会委托你为他们设定一个程序,可以自动进行选手分数的统计工作。

输入:

假设此次比赛有十个评委,每次录入十个评委的打分成绩(百分制整数)。

输出:

每组测试对应三行输出:第一行是删除的最高分;第二行是删除的最低分;第三行是选手的最终平均分。

See test cases.

测试输入期待的输出时间限制内存限制额外进程
测试用例 1以文本方式显示
  1. 90 91 93 94 90 99 97 92 91 95↵
以文本方式显示
  1. Canceled Max Score:99↵
  2. Canceled Min Score:90↵
  3. Average Score:92↵
无限制64M0
#include <stdio.h>
#include <math.h> // 包含数学函数库

int main() {
    int scores[10]; // 存储十个评委的打分
    int sum = 0; // 总分
    int maxScore = 0; // 最高分
    int minScore = 100; // 最低分
    double average; // 平均分
    int flooredAverage; // 向下取整的平均分

    // 读取评委的分数
    for (int i = 0; i < 10; i++) {
        scanf("%d", &scores[i]);
        sum += scores[i];
        if (scores[i] > maxScore) maxScore = scores[i];
        if (scores[i] < minScore) minScore = scores[i];
    }

    // 去掉一个最高分和一个最低分
    sum -= maxScore;
    sum -= minScore;

    // 计算去掉最高分和最低分后的平均分
    average = sum / 8.0; // 这里有8个评分参与平均分计算
    flooredAverage = (int) floor(average); // 向下取整平均分

    // 输出结果
    printf("Canceled Max Score:%d\n", maxScore);
    printf("Canceled Min Score:%d\n", minScore);
    printf("Average Score:%d\n", flooredAverage); // 输出向下取整的平均分

    return 0;
}

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值