对字符串很是不熟悉,求教。困扰好几天了,到底要怎么改,谢谢
三国杀中,君主有5滴血,武将有4滴血,文官有3滴血。 Input 在输入中K代表君主,L代表文官,R代表武将,输入格式先是一个sum (sum < 100) 表述测试数据的组数,接着输入一个数n (n < 100) 表示人物数量,接着n行,每行输入格式如下:人物名(小于30个字符),身份名 之间有一个空格如: zhugeliang L 接这输入ask (ask < 1000),表示询问数,跟着ask行每行一个字符串,表示要询问的人物。
Output 要求根据输入信息编程输出人物的血数,如果人物不存在输出none,每个询问后换行.
Sample Input
1
3
sunquan K
caocao K
liubei K
2
sunquan
guanyu
Sample Output
5
none
为什么我的代码没有输出,不明白。二维字符数组是怎么控制的啊
我的代码:
#include <stdio.h>
int main(void)
{
char str[100][30], arr[1000][30];
int i, j, sum, n, ask, p=1;
while(scanf("%d", &sum)!=EOF)
{
while(sum--)
{
scanf("%d", &n);
for(i=0; i<n; i++)
for(j=0; str[i][j]!='\n'; j++) //输入名称字符串
{
str[i][j] = getchar();
}
scanf("%d", &ask);
for(i=0; i<ask; i++) //输入询问字符串
for(j=0; arr[i][j]!='\n'; j++)
{
arr[i][j] = getchar();
}
for(i=0; i<ask; i++)
{
for(j=0; str[i][j]!=' '; j++) //空格前的名称进行比较
{
if(str[i][j]!=arr[i][j])
{
printf("no\n");
p=0;
break;
}
}
if(1==p) //如果询问存在情况
if(str[i][j+1]=='K')
printf("5\n");
else if(str[i][j+1]=='L')
printf("3\n");
else if(str[i][j+1]=='R')
printf("4\n");
}
}
p=1;
}
return 0;
}