1058 选择题 (20 分)
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。
输入格式:
输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文字母 a 开始顺次排列。各项间以 1 个空格分隔。最后 N 行,每行给出一个学生的答题情况,其每题答案格式为 (选中的选项个数 选项1 ……)
,按题目顺序给出。注意:题目保证学生的答题情况是合法的,即不存在选中的选项数超过实际选项数的情况。
输出格式:
按照输入的顺序给出每个学生的得分,每个分数占一行。注意判题时只有选择全部正确才能得到该题的分数。最后一行输出错得最多的题目的错误次数和编号(题目按照输入的顺序从 1 开始编号)。如果有并列,则按编号递增顺序输出。数字间用空格分隔,行首尾不得有多余空格。如果所有题目都没有人错,则在最后一行输出 Too simple
。
输入样例:
3 4
3 4 2 a c
2 5 1 b
5 3 2 b c
1 5 4 a b d e
(2 a c) (2 b d) (2 a c) (3 a b e)
(2 a c) (1 b) (2 a b) (4 a b d e)
(2 b d) (1 e) (2 b c) (4 a b c d)
输出样例:
3
6
5
2 2 3 4
//fgets(stu[i].option,10,stdin) //scanf("(%d%[^)]",&num_correct,str); //这两个输入的字符串在最后的结尾处\n不相等,会导致strcmp无法完成匹配正确的结果 #include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn = 1010; struct Student{int grade;int num_option;int num_right;char option[60];int wrongTimes; }stu[maxn];int main(){int n,m;//the numbers of the student and the questionscanf("%d%d",&n,&m);for(int i = 1; i <= m; i++){scanf("%d%d%d",&stu[i].grade,&stu[i].num_option,&stu[i].num_right);//scanf("%s",stu[i].option);//store the string including the front space //fgets(stu[i].option,10,stdin);//gets(stu[i].option); cin.getline(stu[i].option,maxn);}int wrongMax = -1;//record the question that the highest time of errors people makebool isWrong = false;//if there is a mistake,isWrong will become truefor(int i = 1; i <= n; i++){char str[100]; //store the option that students selectint sum = 0,num_correct; //store the grades that students getfor(int j = 1; j <= 4; j++){scanf("(%d%[^)]",&num_correct,str);//the function of %[^)] is store all character except ')'scanf(")");getchar(); if(num_correct == stu[j].num_right){if(strcmp(str,stu[j].option) == 0){sum += stu[j].grade;}else{stu[j].wrongTimes++;if(stu[j].wrongTimes > wrongMax) wrongMax = stu[j].wrongTimes;isWrong = true;}}else{stu[j].wrongTimes++;if(stu[j].wrongTimes > wrongMax) wrongMax = stu[j].wrongTimes;isWrong = true;}}printf("%d\n",sum);}if(!isWrong) printf("Too Simple\n");else{printf("%d",wrongMax);for(int i = 1; i <= m; i++){if(stu[i].wrongTimes == wrongMax) printf(" %d",i);}}return 0; }
转载于:https://www.cnblogs.com/wanghao-boke/p/10399507.html
1058 选择题 (20 分)相关推荐
- C++学习之路 | PTA乙级—— 1058 选择题 (20 分)(精简)
1058 选择题 (20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 10 ...
- PAT (Basic Level) Practice (中文)1058 选择题 (20 分)
PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...
- 【详细注释】1058 选择题 (20 分)
立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整 ...
- 【PAT乙级】1058 选择题 (20 分)
题目地址 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int score[N],sum[N],cnt[ ...
- 1058. 选择题(20)
原题: https://www.patest.cn/contests/pat-b-practise/1058 思路: 本题主要就是怎么读取数据的问题, 一定要注意scanf函数匹配到 空格或者回车会结 ...
- 1058. 选择题(20)-PAT乙级真题
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多 ...
- ptapython答案单选题_PTA:Python解答1058 选择题
1058 选择题 (20分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100 ...
- 1058 A+B in Hogwarts (20 分)
1058 A+B in Hogwarts (20 分) If you are a fan of Harry Potter, you would know the world of magic has ...
- PAT 1058 选择题 python
1058 选择题 (20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 10 ...
- 计算机应用考试怎么改卷的,电脑阅卷流程是这样的!读完可多拿20分(转给考生,这对他们有用)...
原标题:电脑阅卷流程是这样的!读完可多拿20分(转给考生,这对他们有用) 就要中考了,相信考生和家长都知道考试的流程和考试规定的文具,但是各位肯定没看过电脑阅卷流程啥样吧! 很多同学毛躁,涂卡划两下就 ...
最新文章
- Linux screen如何加载用户配置
- 低版本eclipse导入高版本eclipse创建项目报错问题
- JDBC的CRUD操作之PreparedStatement的保存操作
- AIProCon在线大会笔记之Google李双峰:TensorFlow的最新进展
- mapgis编辑属性结构编辑不了_MapGIS67操作手册(3-17)MapGIS67编辑线属性结构的方法...
- 课程设计:基于SQL Server的银行ATM 存取款机系统设计与实现
- Linux --- awk
- 如何下载和安装SQL Server数据库实验助手(DEA)
- 中国接种环行业市场供需与战略研究报告
- 邯郸三中高考2021成绩查询,邯郸2021年中考统考成绩
- 如何在线免费对PDF文档进行解密
- 【多校联赛】The Crime-solving Plan of Groundhog
- HTML教程(8)-播放音乐
- 超详细的bat脚本常用命令及亲测示例
- 如何在AD中导入CAD画的DXF/DWG文件?
- 计算机通信常用的纠错方式,纠错
- Scala 上下文界定
- 生产者消费者问题:管程法
- 目前计算机常用的CPU型号,价格差异太大了!教你选择CPU型号及常见CPU后缀字母详解...
- 原生php开发多管理员留言板系统源码
热门文章
- python模块;opencv安装
- YYModel Summary
- 在进行 ASP.NET 开发时,有时候需要对页面输出的最终 HTML 源代码进行控制
- 大数据技术与应用实训心得_GXCGQ16D传感器与检测技术应用实训考核设备
- 高级cmd攻击命令_一步一步学习DVWA渗透测试(Command Injection命令行注入)-第七次课...
- php 字符串与数字相加,注意!PHP中字符串与数字的比较
- re.containerbase.startinternal 子容器启动失败_Python项目容器化实践(二) Docker Machine和Docker Swarm...
- mysql 日期列表_MySQL 生成日期表
- python图例位置_Python | 图例位置
- Java Calendar getActualMaximum()方法与示例