墨涵学编程 2021-12-07 10:52 采纳率: 66.7%
浏览 264
已结题

掐头去尾求平均值(去掉最高和最低)

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容

我的解答思路和尝试过的方法
我想要达到的结果

掐头去尾求均分
题目描述

有 n个学生,每个学生包括学号、姓名、成绩,学号和姓名是长度小于 20 个字符的字符串,成绩是整数,成绩按百分制计算。

要求输入 n个学生的数据,计算掐头去尾的平均分。

掐头去尾的平均分计算方法为:去掉一个最高分,去掉一个最低分,再计算平均分。

输入描述

输入共n+1行

第一行包括一个整数n(n < 10)

接下来有n行输入,每行输入一个学生的学号、姓名、成绩

输出描述

输出一行,包括一个数字,该数为按照题目要求的方法计算出的平均分,结果保留两位小数

输入样例

3

A001 Jane 90

A002 Puck 76

A003 Elan 84
输出样例

84.00

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-12-07 10:54
    关注

    求出最高分、最低分和总分,然后(总分-最高分-最低分)/(人数-2)就是平均分

    #include <stdio.h>
    typedef struct _student
    {
        char name[20];
        char id[20];
        float s;
    }student;
    int main()
    {
        student s[100];
        int n,i;
        float max=0,min=101,sum=0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            scanf("%s %s %f",s[i].name,s[i].id,&s[i].s);
            sum += s[i].s;
            if(s[i].s>max)
                max = s[i].s;
            if(s[i].s < min)
                min = s[i].s;
        }
        printf("%.2f",(sum-max-min)/(n-2));
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集