这个题应该没什么难度。如果有也应该是那个判断子串的check_word()函数。
int check_word(char s2[55],char s[200])
{
int i,j,m=-1;
int t=0;
int n1=strlen(s2);
int n2=strlen(s);
for(i=0;i<n1;i++)
{
for(j=m+1;j<n2;j++)
if(s2[i]==s[j])
{m=j;t++;break;}
}
if(t==n1)
return 1;
return 0;
}
好好体会,再多练习练习吧。
1 #include<stdio.h> 2 #include<string.h> 3 char s2[55],s[200]; 4 int check_word(char s2[55],char s[200]); 5 int main() 6 { 7 int t; 8 int m,n; 9 int k; 10 while(scanf("%d",&t)!=EOF) 11 { 12 while(t--) 13 { 14 k=0; 15 scanf("%d%d",&m,&n); 16 scanf("%s",s2); 17 while(m--) 18 { 19 scanf("%s",s); 20 if(check_word(s2,s)) 21 k++; 22 } 23 if(k>n)printf("EMule V5!\n"); 24 if(k==n)printf("Orz!\n"); 25 if(k<n) printf("Vagaa V5!\n"); 26 } 27 printf("\n"); 28 } 29 return 0; 30 } 31 int check_word(char s2[55],char s[200]) 32 { 33 int i,j,m=-1; 34 int t=0; 35 int n1=strlen(s2); 36 int n2=strlen(s); 37 for(i=0;i<n1;i++) 38 { 39 for(j=m+1;j<n2;j++) 40 if(s2[i]==s[j]) 41 {m=j;t++;break;} 42 } 43 if(t==n1) 44 return 1; 45 return 0; 46 }
店长推荐Ⅲ | |||||
| |||||
Description | |||||
店长玩了一阵子vagaa后烦了,教主得知后立马毫不吝啬地拿出自己的电驴(Emule),又是一个下载神器!了解了它的用法后,店长想让这两个工具PK一下,在得知了vagaa的所有性能后,店长对电驴进行了测试,搜索了一些关键词,看下他的搜索能力如何?如果给出的搜索结果中包含关键词(需要按顺序但是不必连续存在,即关键字是结果的子串),表示搜索结果正确 | |||||
Input | |||||
第一行输入一个整数T表示测试数据组数 第二行输入两个整数m,n(0<m<50,0<n<=m),n代表vagaa得到正确结果数量!接下来一行输入一个字符串(长度小于等于50)表示关键词,然后m行表示搜索的结果。 题目有多组测试数据 | |||||
Output | |||||
统计电驴正确结果数量和vagaa进行对比 如果大于vagaa那么输入”EMule V5!”,并换行. 如果小于vagaa那么输出”Vagaa V5!”,并换行 如果相等,输出”Orz!”并换行 每次进行T组pk后输出一个换行 | |||||
Sample Input | |||||
1 | |||||
Sample Output | |||||
EMule V5!
Orz!
Vagaa V5! |