PAT B1058 选择题
来源:互联网 发布:主机域名哪个是主机名 编辑:程序博客网 时间:2024/05/23 01:24
这是PAT乙级考试题库B1058题的思路:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct question{ int wnum; //wnum用来记录该道题目错误的次数; int mark; //mark用来记录该道题目的分值;ans字符数组记录正确答案 char ans[10];}qus[110];int sum[1010]={0};int main(){ int n,m,temp1,temp2,temp3; scanf("%d %d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d %d %d",&qus[i].mark,&temp1,&temp2); getchar(); for(int j=0;j<temp2;j++){ scanf("%c",&qus[i].ans[j]); //需要通过输入记录的值即正确答案;由于题中输入格式的限制,只能用%c字符一个一个输入; getchar(); //在字符串数组结尾要记得加上'\0'作为结束标志; } qus[i].ans[temp2]='\0'; qus[i].wnum=0; } for(int i=0;i<n;i++){ for(int j=1;j<=m;j++){ scanf("(%d",&temp3);char temp[10]; //输入学生的答题情况,要注意输入的格式的正确性; for(int k=0;k<temp3;k++){ getchar(); scanf("%c",&temp[k]); } temp[temp3]='\0'; getchar();getchar(); //用getchar处理输入中不必要的字符; if(strcmp(qus[j].ans,temp)==0){ //如果该题答案正确,则加分; sum[i]+=qus[j].mark; //如果不正确。则该题的wnum自增; } else qus[j].wnum++; } printf("%d\n",sum[i]); //在每行输出每个人的得分; } int max=0; for(int j=1;j<=m;j++){ if(qus[j].wnum>max){ max=qus[j].wnum; //求出错误数最高的错误数max } } if(max==0) printf("Too simple"); else{ printf("%d",max); for(int j=1;j<=m;j++){ if(qus[j].wnum==max) //再循环一遍,输出所有错误数为max的题的题号; printf(" %d",j); } } return 0;}
0 0
- PAT B1058 选择题
- PAT-B 1058. 选择题
- PAT - 1058. 选择题(20)
- PAT-B 1058. 选择题
- [PAT-乙级]1058.选择题
- 1058. 选择题(20) PAT
- PAT 1058选择题
- PAT乙级1058 选择题
- PAT 乙级 1058. 选择题(20)
- 1058. 选择题(20) PAT乙级
- PAT乙级 1058. 选择题(20)
- PAT乙级 1058. 选择题(20)
- [PAT乙级]1058. 选择题(20)
- pat 乙级 1058. 选择题(20)
- PAT乙级1058. 选择题(20)
- PAT 乙级 1058. 选择题(20)
- PAT 1058. 选择题(20) C++
- 1058. 选择题(20)-PAT乙级真题
- 算法训练 阶乘
- WCF 的证书验证
- 初识Html+CSS
- 设计模式深入学习--Observer 观察者模式(行为型模式)
- jzoj C组 2017.1.21
- PAT B1058 选择题
- 【codevs2370】小机房的树
- Linux 下的程序 honker
- 参加雅思考试了解加拿大留学移民最新政策两不误
- 分类决策树原理及实现(三)
- C++方法后加const
- codeforces476c
- 爬虫如何实现每天爬取,定点爬取[以股票数据为例]
- RecycleView添加横向分割线