批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。

输入格式:

输入在第一行给出两个正整数 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 分)相关推荐

  1. C++学习之路 | PTA乙级—— 1058 选择题 (20 分)(精简)

    1058 选择题 (20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 10 ...

  2. PAT (Basic Level) Practice (中文)1058 选择题 (20 分)

    PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...

  3. 【详细注释】1058 选择题 (20 分)

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整 ...

  4. 【PAT乙级】1058 选择题 (20 分)

    题目地址 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int score[N],sum[N],cnt[ ...

  5. 1058. 选择题(20)

    原题: https://www.patest.cn/contests/pat-b-practise/1058 思路: 本题主要就是怎么读取数据的问题, 一定要注意scanf函数匹配到 空格或者回车会结 ...

  6. 1058. 选择题(20)-PAT乙级真题

    批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多 ...

  7. ptapython答案单选题_PTA:Python解答1058 选择题

    1058 选择题 (20分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100 ...

  8. 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 ...

  9. PAT 1058 选择题 python

    1058 选择题 (20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 10 ...

  10. 计算机应用考试怎么改卷的,电脑阅卷流程是这样的!读完可多拿20分(转给考生,这对他们有用)...

    原标题:电脑阅卷流程是这样的!读完可多拿20分(转给考生,这对他们有用) 就要中考了,相信考生和家长都知道考试的流程和考试规定的文具,但是各位肯定没看过电脑阅卷流程啥样吧! 很多同学毛躁,涂卡划两下就 ...

最新文章

  1. Linux screen如何加载用户配置
  2. 低版本eclipse导入高版本eclipse创建项目报错问题
  3. JDBC的CRUD操作之PreparedStatement的保存操作
  4. AIProCon在线大会笔记之Google李双峰:TensorFlow的最新进展
  5. mapgis编辑属性结构编辑不了_MapGIS67操作手册(3-17)MapGIS67编辑线属性结构的方法...
  6. 课程设计:基于SQL Server的银行ATM 存取款机系统设计与实现
  7. Linux --- awk
  8. 如何下载和安装SQL Server数据库实验助手(DEA)
  9. 中国接种环行业市场供需与战略研究报告
  10. 邯郸三中高考2021成绩查询,邯郸2021年中考统考成绩
  11. 如何在线免费对PDF文档进行解密
  12. 【多校联赛】The Crime-solving Plan of Groundhog
  13. HTML教程(8)-播放音乐
  14. 超详细的bat脚本常用命令及亲测示例
  15. 如何在AD中导入CAD画的DXF/DWG文件?
  16. 计算机通信常用的纠错方式,纠错
  17. Scala 上下文界定
  18. 生产者消费者问题:管程法
  19. 目前计算机常用的CPU型号,价格差异太大了!教你选择CPU型号及常见CPU后缀字母详解...
  20. 原生php开发多管理员留言板系统源码

热门文章

  1. python模块;opencv安装
  2. YYModel Summary
  3. 在进行 ASP.NET 开发时,有时候需要对页面输出的最终 HTML 源代码进行控制
  4. 大数据技术与应用实训心得_GXCGQ16D传感器与检测技术应用实训考核设备
  5. 高级cmd攻击命令_一步一步学习DVWA渗透测试(Command Injection命令行注入)-第七次课...
  6. php 字符串与数字相加,注意!PHP中字符串与数字的比较
  7. re.containerbase.startinternal 子容器启动失败_Python项目容器化实践(二) Docker Machine和Docker Swarm...
  8. mysql 日期列表_MySQL 生成日期表
  9. python图例位置_Python | 图例位置
  10. Java Calendar getActualMaximum()方法与示例