题目
三国杀中,君主有5滴血,武将有4滴血,文官有3滴血。
输入
在输入中K代表君主,L代表文官,R代表武将,输入格式先是一个sum (sum < 100) 表述测试数据的组数,接着输入一个数n (n < 100) 表示人物数量,接着n行,每行输入格式如下:
人物名(小于30个字符),身份名 之间有一个空格如:
zhugeliang L
接这输入ask (ask < 1000),表示询问数,跟着ask行每行一个字符串,表示要询问的人物。
输出
要求根据输入信息编程输出人物的血数,如果人物不存在输出none,每个询问后换行.
样例输入
1
3
sunquan K
caocao K
liubei K
2
sunquan
guanyu
样例输出
5
none
分析:
此题也是很简单但复杂的题目,不过此题用结构体处理的话,会方便许多。
我在此题中,一开始没有注意sum 。
#include"stdio.h"
#include"string.h"
typedef struct people{
char name[50];
char id;
int Blood;
}people;
int main()
{ char c;
people node[2000];
int sum,n,m;
int i,j,k;
char P[50];
while(~scanf("%d",&sum))
{ while(sum--)//这里一开始未主意
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s%c%c",&node[i].name,&c,&node[i].id);
if(node[i].id=='K')
node[i].Blood=5;
else
if(node[i].id=='L')
node[i].Blood=3;
else
node[i].Blood=4;
}
scanf("%d",&m);
while(m--)
{
scanf("%s",P);
for(i=0;i<n;i++)
if(strcmp(P,node[i].name)==0)
{printf("%d\n",node[i].Blood);
break;
}
if(i==n)
printf("none\n");
}
}
}
}