**
**
關於這道題,就是字元處理起來有點麻煩,然後思路就按照題目所給的意思來就行了…
下面 下麪講下這道題字元怎麼讀
就兩點(都是輸入的)
#include <stdio.h>
struct pro
{
int alls; //滿分
int sel; //選項數
int corsel; //正確選項數
char xx[6]; //選項
};
int main()
{
int n,m;
scanf("%d %d",&n,&m);
struct pro a[105];
int i,j;
for(i=0;i<m;i++)
{
scanf("%d %d %d",&a[i].alls,&a[i].sel,&a[i].corsel);
for(j=0;j<a[i].corsel;)
{
char c = getchar();
if(c != ' ')
a[i].xx[j++] = c;
}
a[i].xx[j] = '\0';
}
int cuoti[105] = {0}; //錯題統計
int stu[1005] = {0}; //學生成績
int max1 = 0; //錯題最多的編號
getchar();
for(i=0;i<n;i++)
{
char c;
int x,flag = 0,k;
for(k=0;k<m;k++) //題目
{
flag = 0;
scanf("(%d ",&x);
for(j=0;j<x;) //輸入選項
{
c = getchar();
if(c == ' ')
continue;
if(x != a[k].corsel) //輸入錯誤的個數
flag = 1;
else //相同個數
if(a[k].xx[j] != c) //不同選項
flag = 1;
j++;
}
scanf(")");
c = getchar();
if(flag)
{
cuoti[k]++;
if(cuoti[k] > cuoti[max1])
max1 = k;
}
else
stu[i] += a[k].alls;
}
}
for(i=0;i<n;i++)
printf("%d\n",stu[i]);
if(cuoti[max1] == 0)
printf("Too simple");
else
{
printf("%d",cuoti[max1]);
for(i=0;i<m;i++)
if(cuoti[max1] == cuoti[i])
printf(" %d",i+1);
}
return 0;
}
------------------------------------------------------------------------------------end