#include <stdio.h>
typedef struct{
int score,useless,right;//score是每题正确得分,useless是每题有多少选项,right是每题正确的选项个数
char op[6]; //op[6]用来按顺序储存正确的选项
}questions;
int main()
{
int max=0,countw[100]={0},n,m,i,j,k,flag,stsc[1000]={0},stop=0;
char tem[6]={0},nouse=0;
questions qs[100]={0};
scanf("%d %d",&n,&m);
for(i=0;i<m;i++) //输入成绩标准
{
scanf("%d %d %d ",&qs[i].score,&qs[i].useless,&qs[i].right);
if( qs[i].right==1 )
{
scanf("%c",&qs[i].op[0]);
}
else
{
for(j=0;j<qs[i].right-1;j++)
scanf("%c ",&qs[i].op[j]);
scanf("%c",&qs[i].op[j]);
}
}
/*for(i=0;i<m;i++) //输出,检验输入是否正确
{
printf("%d %d %d ",qs[i].score,qs[i].useless,qs[i].right);
if( qs[i].right==1 )
{
printf("%c\n",qs[i].op[0]);
}
else
{
for(j=0;j<qs[i].right-1;j++)
printf("%c ",qs[i].op[j]);
printf("%c\n",qs[i].op[j]);
}
}*/
for(i=0;i<n;i++) //学生个数
{
for(j=0;j<m;j++) //题目个数
{
flag=0; //对是0,错是1
stop=0;
for(k=0;k<6;k++)
tem[k]=0;
scanf("%c(%d",&nouse,&stop);
for(k=0;k<stop;k++)
scanf(" %c",&tem[k]);
scanf(")");
if(stop != qs[j].right)
{
//printf("错的是选项个数%d,%d\n",stop,qs[j].right);
countw[j]++;
continue;
}
else
{
for(k=0;k<qs[j].right;k++)
if(tem[k]!=qs[j].op[k])
{
countw[j]++;
flag=1;
//printf("错的是选项内容%c,%c\n",tem[k],qs[j].op[k]);
break;
}
if(!flag)
stsc[i] += qs[j].score;
}
}
}
for(i=0;i<n;i++)
printf("%d\n",stsc[i]); //输出学生成绩
for(i=0;i<100;i++)
if(max<=countw[i])
max = countw[i];//找出错误最多的题目
if(!max)
printf("Too simple");
else
{
printf("%d",max);
for(i=0;i<100;i++)
if(max==countw[i])
printf(" %d",i+1);
}
system("pause");
return 0;
}
1058 选择题,C
最新推荐文章于 2020-12-23 15:19:27 发布