我的思路是从头扫到尾,扫到T则说明前面对应的字母为正确选项,然后将字母和数字对应起来输出即可,这里选项和数字对应的顺序较简单。
tricks就在于你如何将scan这些选项了。
我的做法是,逐字读入,遇见回车说明一行结束,途中分为选项字母ABCD,和正确错误选项TF,直至读入n行为止。
只要一读到T,则说明前面的选项是正确的,输出。
#include <stdio.h>
int isWhat(char c)
{
if(c=='A'||c=='B'||c=='C'||c=='D')
return 1; //option character
else if(c=='T'||c=='F')
return 2; //true-or-false character
else return 0;
}
int main()
{
int n,i,d;
char op,tag,c;
scanf("%d",&n);
i=0;
while(i<=n)
{
c=getchar();
d=isWhat(c);
if(d==1) op=c;
else if(d==2) tag=c;
else if(c=='\n') i++; //new line
if(tag=='T')
{
printf("%d",op-'A'+1);
tag='F'; //reset
}
}
return 0;
}