此处为我的存储结构,只提供一种思路,二维数组存储所有数据

#include<stdio.h>
#include<string.h>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
int ti[200][20]={0};
bool ffind(char *p,char c){
int len = strlen(p);
for(int i=0;i<len;i++){
if(p[i]==c) return true;
}
return false;
}
int main(){
int flag=0;//储存错的最多次数
int N,M;scanf("%d %d",&N,&M);
for(int i=1;i<=M;i++){
scanf("%d %d %d",&ti[i][0],&ti[i][1],&ti[i][2]);
for(int j=0;j<ti[i][2];j++){
char temp;scanf(" %c",&temp);
ti[i][temp-'a'+3]=1;
}
}
getchar();//接收换行
for(int i=0;i<N;i++){//N个学生,N次循环
double score=0;//当前学生成绩
for(int j=1;j<=M;j++){
int Tnum=0,ff=0;
char str[10];
scanf(" (%[^)]",str);
for(int k=3;k<=7;k++){
char temp=k-3+'a';
if(ffind(str,temp)==true){//选了
if(ti[j][k]==0){//错
ti[j][k+5]++;ff=1;
if(ti[j][k+5]>flag) flag=ti[j][k+5];
}else Tnum++;
}else{//没选
if(ti[j][k]==1){
ti[j][k+5]++;
if(ti[j][k+5]>flag) flag=ti[j][k+5];
}
}
}
if(ff==0){
if(Tnum==ti[j][2]) score+=ti[j][0];
if(Tnum<ti[j][2]){
score+=ti[j][0]/2.0;
}
}
getchar();//右括号
}
printf("%.1lf\n",score);
}
if(flag==0){
printf("Too simple");
return 0;
}
for(int i=1;i<=M;i++){
for(int j=8;j<=12;j++){
if(ti[i][j]==flag) printf("%d %d-%c\n",flag,i,j-8+'a');
}
}
return 0;
}

【PAT】B1073 多选题常见计分法(20 分)的更多相关文章

  1. PAT——1073. 多选题常见计分法(20)

    批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数:如果考生选择了任何一个错误的选项,则不能得分.本题就 ...

  2. 1073 多选题常见计分法 (20分)C语言

    批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生选择了任何一个错误的选项,则不能得分.本 ...

  3. PAT 1073. 多选题常见计分法

    PAT 1073. 多选题常见计分法 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数:如果考生选择了 ...

  4. PAT 1073 多选题常见计分法(20)(代码+思路)

    1073 多选题常见计分法(20 分) 批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生 ...

  5. PAT 1073 多选题常见计分法 (20 分)

    批改多选题是比较麻烦的事情,有很多不同的计分方法.有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数:如果考生选择了任何一个错误的选项,则不能得分.本 ...

  6. P1073 多选题常见计分法

    P1073 多选题常见计分法 转跳点:

  7. PAT Basic 1073. 多选题常见计分法

    题目内容 多选题常见计分法(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 批改多选题是比较麻烦的事情,有 ...

  8. PAT (Advanced Level) Practice 1015 Reversible Primes (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1015 Reversible Primes (20 分) 凌宸1642 题目描述: A reversible prime in any n ...

  9. PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642 题目描述: The task is really simple: ...

随机推荐

  1. dart之旅(二)- 内建类型

    目录 number 类型 字符串 布尔类型 像大多数语言一样,dart 也提供了 number,string,boolean 等类型,包括以下几种: numbers strings booleans ...

  2. Netty精粹之轻量级内存池技术实现原理与应用

    摘要: 在Netty中,通常会有多个IO线程独立工作,基于NioEventLoop的实现,每个IO线程负责轮询单独的Selector实例来检索IO事件,当IO事件来临的时候,IO线程开始处理IO事件. ...

  3. Kafka的通讯协议

    Kafka的通讯协议 标签:kafka Kafka的Producer.Broker和Consumer之间采用的是一套自行设计的基于TCP层的协议.Kafka的这套协议完全是为了Kafka自身的业务需求 ...

  4. PHP四大基本排序算法实例

    PHP四大基本排序算法包括:冒泡排序法,快速排序法,选择排序法,插入排序法. 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往 ...

  5. hiveServer2 和 metastore的一点解读。

    刚看了hive官网的文档,对于一些概念结合自己的经验,似乎又多了一些理解,想一想还是记下来的好,一来我是个有些健忘的人,过一段时间即便忘了,循着这个帖子,也能快速把知识点抓起来:二来或许对别人也有些启 ...

  6. [转]debian9 安装任意版本mysql

    Debian 9 - Install MySQL Server The steps below will show you how to install whichever version of My ...

  7. sass重构响应式unofficial‘s博客轻松适应移动端

    前言: 刚刚玩博客园几天时间,发现挺不错的,对于我这个懒人又是一个爱折腾的人来说挺不错的,对于上班玩电脑,下班玩手机的用户来说,博客园中我的博客有一点给我的感觉不是很友好,电脑端看起来很美观的一个页面 ...

  8. PHP报错类型

    p: 语法错误 定界符; F: 致命错误 函数;方法重名;包含(require) W: 警告 包含(include); N: 通知 变量未声明,函数

  9. ARM常用汇编指令列表 --- 转自百度文库

  10. ASP.NET Identity系列教程(目录)转载

    来源:http://www.cnblogs.com/r01cn/p/5179506.html 注:最近看到不少介绍微软ASP.NET Identity技术的文章,但感觉都不够完整深入,本人又恰好曾在A ...