409 - Excuses, Excuses!

果断1y

#include<stdio.h>
#include<string.h>
#include<ctype.h>
char excuse[20][100];
char words[20];
char keybords[20][20];
int flag[20],count[20];
int getwords(int i,int j,int l)
{
 int n=0;
 words[0]='\0';
 while(!isalpha(excuse[i][j])&&j<l)
  j++;
 while(isalpha(excuse[i][j])&&j<l)
  words[n++]=excuse[i][j++];
 if(j<l)
 {
    words[n]='\0';
    l=strlen(words);
    for(i=0;i<l;i++)
    words[i]=tolower(words[i]);
  }
 return j;
}
int main()
{
 int i,j,l,k,min,K,E,cases=1;
 while(scanf("%d%d",&K,&E)!=EOF)
 {
  getchar();
  for(i=0;i<K;i++)
  {
   gets(keybords[i]);
   l=strlen(keybords[i]);
   for(j=0;j<l;j++)
    keybords[i][j]=tolower(keybords[i][j]);
  }
  for(i=0;i<E;i++)
   gets(excuse[i]);
  memset(count,0,sizeof(count));
  for(i=0;i<E;i++)
  {
   memset(flag,0,sizeof(flag));
   l=strlen(excuse[i]);
   for(j=0;j<l;)
   {
    j=getwords(i,j,l);
    for(k=0;k<K;k++)
    {
     if(strcmp(words,keybords[k])==0&&flag[k]==0)
     {
      count[i]++;
      flag[k]=1;
     }
    }
   }
  }
  min=0;
  for(i=0;i<E;i++)
   if(count[i]>=count[min])
    min=i;
  printf("Excuse Set #%d\n",cases++);
  for(i=0;i<E;i++)
   if(count[i]==count[min])
           printf("%s\n",excuse[i]);
  printf("\n");
 }
 return 0;
}

你可能感兴趣的:(c)