立志用更少的代码做更高效的表达


Pat乙级最优化代码+题解+分析汇总——>传送门


在浙大的计算机专业课中,经常有互评分组报告这个环节。一个组上台介绍自己的工作,其他组在台下为其表现评分。最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平均分记为 G1;老师给这个组的评分记为 G2。该组得分为 (G1+G2)/2,最后结果四舍五入后保留整数分。本题就要求你写个程序帮助老师计算每个组的互评成绩。

输入格式:
输入第一行给出两个正整数 N(> 3)和 M,分别是分组数和满分,均不超过 100。随后 N 行,每行给出该组得到的 N 个分数(均保证为整型范围内的整数),其中第 1 个是老师给出的评分,后面 N−1 个是其他组给的评分。合法的输入应该是 [0,M] 区间内的整数,若不在合法区间内,则该分数须被忽略。题目保证老师的评分都是合法的,并且每个组至少会有 3 个来自同学的合法评分。

输出格式:
为每个组输出其最终得分。每个得分占一行。

输入样例:
6 50
42 49 49 35 38 41
36 51 50 28 -1 30
40 36 41 33 47 49
30 250 -25 27 45 31
48 0 0 50 50 1234
43 41 36 29 42 29
输出样例:
42
33
41
31
37
39


思路分析

定义一个结构体, 分别存放每组 最大值、最小值、评分、老师评分、合法的评分数。 最后四舍五入输出即可。

注意:不能用%.0lf表示四舍五入整数。需要加上1e-6的判定,形如:if((G+1e-6)-(int)G > 0.5) G += 1;
因为double变量在存储时不时那么精确,3.5可能会被存储成3.499999, 进行四舍五入时很可能被舍弃。 所以需要增加1e-6的范围限定。 1e-6=10^-6


代码

#include<bits/stdc++.h>
using namespace std;
struct group{int Max, Min, total;int teacher;   //老师的分数 int yes_num;        //合格的个数
}g[110];
int main() {int n, score; cin >> n >> score;for(int i = 0; i < n; i++) {for(int j = 0; j < n; j++) {int x; cin >> x;if(j == 0) {g[i].teacher = x;g[i].Max = -1;  g[i].Min = 100;} else if(x <= score && x >= 0) {g[i].Max = max(x, g[i].Max);g[i].Min = min(x, g[i].Min);g[i].total += x;g[i].yes_num++;} }} for(int i = 0; i < n; i++) {//      cout << g[i].total << ' ' << g[i].Max << ' ' << g[i].Min <<' ' << g[i].yes_num << '\n';double G1 = (double)(g[i].total-g[i].Max-g[i].Min)/(g[i].yes_num-2);double G = (double)((G1 + g[i].teacher) / 2.0);if((G+1e-6)-(int)G > 0.5) G += 1;        //四舍五入的方法 printf("%d\n", (int)G);}return 0;
}

耗时


每日一句

要活成两种样子,发光和不发光。不发光的时候,都是在为发光做准备~

【简便解法】1077 互评成绩计算 (20分)_32行代码AC相关推荐

  1. 【简便解法】1084 Broken Keyboard (20 分)_16行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 On a broken keyboard, some of the keys are worn out. So when you ...

  2. 【简便解法】1084 外观数列 (20分)_24行代码AC

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 ...

  3. 【PAT乙级】1077 互评成绩计算 (20 分)

    题目地址 #include<bits/stdc++.h> using namespace std; int n,m; int sum[100005]; int main(void) {ci ...

  4. 【简便解法】1090 危险品装箱 (25分)_33行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题 ...

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

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

  6. 1081 Rational Sum (20 分)_22行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given N rational numbers in the form numerator/denominator, you a ...

  7. 简便解法:1004 成绩排名 (20分)

    立志用更少的代码做更高效的表达 Pat乙级题解汇总-->传送门 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个 ...

  8. 【简便解法】1074 宇宙无敌加法器 (20分)_40行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的.而在 PAT 星人开挂的世界里,每个数字的每一位都 ...

  9. 【简便代码】1063 计算谱半径 (20分)_10行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的 ...

最新文章

  1. Linux下SVN服务器支持Apache的http和svnserve独立服务器
  2. 虚拟机克隆_了解Java中的可克隆接口
  3. python装饰器类-Python 装饰器装饰类中的方法
  4. 双网卡上网冲突解决_【技术文章】局域网IP地址冲突罪魁祸首是什么?这几点要注意!(附高手处理方法)...
  5. JAVA中toString方法的作用(转)
  6. CVPR | 历届CVPR最佳论文收录集锦
  7. MS SQL SERVER 读取数据库中每个表的描述/注释以及表中字段/列的字段名,字段类型,字段描述/注释/说明等信息...
  8. python打开文本文档_带声明的Python –带打开的文件
  9. linux sar 历史负载,sar 查看历史负载
  10. Gradle使用maven仓库
  11. 如何在电脑上缓存哔哩哔哩的视频
  12. PC装MAC OS 10.6雪豹系统教程
  13. 新中大财务软件-A3中怎样更改IP地址
  14. folder汇总字段的实现
  15. 【冬镜网】什么是搜索引擎优化?
  16. 高德地图刷新当前位置_定位-服务-教程-地图 JS API | 高德地图API
  17. 触摸!天空龙 - 锻炼极速反应力
  18. SPSS数据拆分(分组)
  19. Be a part of making the world’s first people powered tablet
  20. 用计算机如何换成音乐,电脑开机与关机音乐如何替换成自己喜欢的音乐

热门文章

  1. C++ 如何一次在堆上申请4G的内存?如何设计一个类只能在堆或者栈上创建对象?
  2. python 去除所有的中文 英文标点符号
  3. selenium的使用教程3
  4. 网易工业级WebRTC应用实践深度解析
  5. FFmpeg 4.0版发布
  6. NLP 训练及推理一体化工具(TurboNLPExp)
  7. VLDB 2019 | 揭秘腾讯TDSQL全时态数据库系统
  8. 大牛书单|安全技术方向好书分享
  9. 腾讯与Github的魔幻会面背后的故事…
  10. 数平精准推荐 | OCR技术之数据篇