UVA 409

题目的意思的是,读取输入的两个数字,第一个数字表示关键字的数目,第二个数字表示搜索字符串的数字,读取完毕之后将字符串中的每一个单词分开读取到临时字符串中,
并与关键字进行匹配,每匹配到一个计数加一,最后比较用于计数的数组,输出含有关键字最多的字符串,学到scanf()读取完毕后,读取字符串要在读取字符串前面加一个
getchar()将'\n'取走,不然字符串的输出会多一个回车
#include<stdio.h>  
#include<string.h>  
#include<ctype.h>  
int main()  
{  
	int m,n,i,j,num[20],max,t=1,a,k,len;  
	char one[20][20],two[20][71],temp[71];  
	while(scanf("%d%d",&m,&n) == 2)  
	{   
		for(i=0; i<m; i++)  
		{  
			scanf("%s",one[i]);  
			getchar();  
		}     
		for(i=0; i<n; i++)  
		{  
			num[i] = 0;
			gets(two[i]);  
			len=strlen(two[i]);  
			for(j=0; j<len; j++)  
			{  
				a=0;  
				while(isalpha(two[i][j]))  
				{  
					temp[a++]=tolower(two[i][j]);  
					j++;  
				}  
				if(a>0)  
				{  
					temp[a]='\0';  
					for(k=0; k<m; k++)  
						if(strcmp(temp,one[k])==0)  
						{  
							num[i]++;
							break;  
						}  
				}  
			} 
		}  
		max = 0;
		for(i = 0; i< n; i++)
		{
			if(max < num[i])
				max = num[i];
		}
		printf("Excuse Set #%d\n",t++);  
		for(i=0; i<n; i++)  
		{  
			if(num[i]==max)  
				printf("%s\n",two[i]);  
		}  
		printf("\n");  
	}  
	return 0;  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值