Description
Input
Output
Sample Input
dog ogday cat atcay pig igpay froot ootfray loops oopslay atcay ittenkay oopslay
Sample Output
cat eh loops
Hint
#include<stdio.h> #include<string.h> #include<stdlib.h> struct dic//定义结构体,使翻译与原语联系在一起。 { char eng[11];//翻译。 char fn[11];//原语。 }; struct dic a[1000001]; int fcmp(const void * a,const void *b)// 定义qsort比较函数 { return strcmp(((dic*)a)->fn, ((dic*)b)->fn); } int cmp(const void* a, const void* b)// 定义bsearch比较函数 { return strcmp((char*)a, ((dic*)b)->fn); } int main() { int i,j,k,sum,sign,len; char str[30]; struct dic *p; sum=0; sign=0; while(gets(str)) { len=strlen(str); if(len==0)//读取的为空行则字典输入完毕。 break; else//否则分段存储翻译与原语。 { for(i=0;i<len;i++) { if(str[i]==' ') break; a[sum].eng[i]=str[i]; } a[sum].eng[i]='\0';//记的字符串最后一位为'\0'。 for(j=i+1,k=0;j<len;j++,k++) a[sum].fn[k]=str[j]; a[sum].fn[k]='\0'; sum++; } } qsort(a,sum,sizeof(dic),fcmp);//将数组升序排列。 while(gets(str)) { p=(dic*)bsearch(str,a,sum,sizeof(dic),cmp);//进行二分查找,返回结构体类型指针。 if(p) puts(p->eng); else puts("eh"); } return 0; }