学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
输入格式:
输入第一行给出3个正整数N(3 < N ≤104,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。
输出格式:
按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。
输入样例:

6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55
结尾无空行

输出样例:

87.667 88.000 96.000
结尾无空行

AC代码:
方法1: 手写排序

#include<bits/stdc++.h>using namespace std;int main()
{int N;int k;int M;cin >> N >> k >> M;int score[k];float student[N];for(int n = 0; n < N; n++){for(int i = 0; i < k; i++){cin >> score[i];}for(int i = 0; i < k - 1; i++){for(int j = i + 1; j < k; j++){if(score[i] > score[j]){int temp = score[i];score[i] = score[j];score[j] = temp;}}}float ave = 0;for(int i = 1; i < k-1; i++){ave += score[i];}ave /= k - 2;student[n] = ave;}for(int i = 0; i < N - 1; i++){for(int j = i + 1; j < N; j++){if(student[i] > student[j]){float temp = student[i];student[i] = student[j];student[j] = temp;}}}for(int i = N - M; i < N; i++){printf("%.3f", student[i]);if(i != N - 1){cout << ' ';}}return 0;
}

方法2: 调用sort

#include<bits/stdc++.h>using namespace std;int main()
{int N;int k;int M;cin >> N >> k >> M;int score[k];float student[N];for(int n = 0; n < N; n++){for(int i = 0; i < k; i++){cin >> score[i];}sort(score, score + k);float ave = 0;for(int i = 1; i < k-1; i++){ave += score[i];}ave /= k - 2;student[n] = ave;}sort(student, student + N);for(int i = N - M; i < N; i++){printf("%.3f", student[i]);if(i != N - 1){cout << ' ';}}return 0;
}

方法3: 使用结构体

#include<bits/stdc++.h>using namespace std;int N, k, M;struct Node
{int score[15];float ave = 0;void average(){sort(score, score + k);for(int i = 1; i < k - 1; i++){ave += score[i];}ave /= k-2;}bool operator <(const Node &J)const{return ave < J.ave;}
}student[10005];int main()
{cin >> N >> k >> M;for(int i = 0; i < N; i++){for(int j = 0; j < k; j++){cin >> student[i].score[j];}student[i].average();}sort(student, student + N);for(int i = N - M; i < N; i++){printf("%.3f", student[i].ave);if(i != N - 1){cout << ' ';}}return 0;
}

方法4: 使用deque

#include<bits/stdc++.h>using namespace std;int main()
{int N, k, M;int score;cin >> N >> k >> M;double ave[10000]; //平均数double all[10000]; //去除最高最低分后的总分数deque<int> d;for (int i = 0; i < N; i++){for(int j = 0; j < k; j++){cin >> score;d.push_back(score);}sort(d.begin(), d.end());d.pop_back();d.pop_front();for (deque<int>::iterator it = d.begin(); it != d.end(); it++){all[i] = all[i] + *it;}ave[i] = all[i] / (k - 2);d.clear();}sort(ave, ave + N);for(int i = N - M; i < N; i++){cout << fixed << setprecision(3) << ave[i];if(i != N - 1){cout << ' ';}}return 0;
}

L2-015 互评成绩相关推荐

  1. 【简便解法】1077 互评成绩计算 (20分)_32行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个 ...

  2. 7-56 互评成绩 (25 分) (排序题)

    7-56 互评成绩 (25 分) 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩.本题就 ...

  3. 1077. 互评成绩计算 (20)-PAT乙级真题

    在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...

  4. 【CCCC】L2-015 互评成绩 (25分),,简单模拟,水题,动态数组排序

    problem L2-015 互评成绩 (25分) 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生 ...

  5. PTA 互评成绩(sort函数)

    题目详情 - L2-015 互评成绩 (25 分) (pintia.cn) #include<bits/stdc++.h> using namespace std; bool comp(d ...

  6. 团体程序设计天梯赛-练习集 L2-015 互评成绩 (25分)

    L2-015 互评成绩 (25分) 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩.本题 ...

  7. 1077 互评成绩计算

    在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...

  8. Java 1077 互评成绩计算

    题目内容: 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩 ...

  9. 互评成绩 python

    7-1 互评成绩 (10 分) 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩.本题就要 ...

  10. L2-015 互评成绩 - java

    L2-015 互评成绩 时间限制 300 ms 内存限制 64 MB 题目描述: 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩 ...

最新文章

  1. tf.expand_dims()
  2. Linux(CentOs6.4)安装Git
  3. php exif信息,php通过exif_read_data函数获取图片的exif信息
  4. MySQL where后面的列子查询使用
  5. java import 出错,Eclipse的java代码出错:The import XXXX cannot be resolved
  6. 小米平板android最新版本,想要翻身还需努力 小米平板2安卓版评测
  7. JAVA最常用的排序_冒泡排序、选择排序、快速排序
  8. C#LeetCode刷题之#371-两整数之和(Sum of Two Integers)
  9. 2 Django-2的路由层(URLconf)
  10. 【2022.3】尚硅谷Vue.js从入门到精通基础笔记(理论+实操+知识点速查)
  11. android studio调整字体大小,如何在Android Studio中增加字体大小?
  12. python运行后闪退_怎样让python运行完了不直接退出?
  13. JavaSE实战项目:飞翔的小鸟(完整版)
  14. MediaSession框架全解析
  15. 如何制作一首歌的歌词 LRC 歌词制作和绑定
  16. WAP/WEB网站建设
  17. 【软件工程】产品调研分析报告
  18. 解决关于Windows10连接共享出现“因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议”的问题
  19. android arcgis使用自定义图片背景底图(tif图片制作)
  20. 翻过这道山,就有人听到你的故事。

热门文章

  1. 基于C#分步式聊天系统的在线视频直播系统 之 FY.Logfiles(日志文件组件)
  2. HGE编写游戏的心得体会
  3. C++编程-191011-鸡兔同笼问题
  4. 【Python】文件夹的基本操作
  5. 单片机通过mqtt联网(51单片机和esp01s)
  6. 机器学习1-线性模型及多分类
  7. response Headers与request Headers字段详解
  8. Windows命令行查看文件的MD5
  9. 1 error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 void __cdecl InitD3D(struct HWND__ *)
  10. 经济实验室帐号与国泰安数据库地址