您的位置:首页 > 其它

poj 2503 Babelfish

2010-10-17 18:11 519 查看
题意:查询的题目,这道题目学习了bsearch()函数,二分查找。

代码:

#include<iostream>
using namespace std;
struct zidian
{
char find[15];
char in[15];
};

zidian s[100020];

int cmp(const void *a,const void *b)//字典数排序
{
return strcmp( ((zidian *)a)->find,((zidian *)b)->find);
}

int main()
{
int i=0,j=0,k;
char aa[100];
zidian *output=NULL;
while (gets (aa) && strlen(aa))
{
for(j=0;aa[j] !=' ';j++)
s[i].in[j] = aa[j];
s[i].in[j]=0;
j++;
for(k=0;aa[j];j++,k++)
s[i].find[k]=aa[j];
s[i].find[k]=0;

i++ ;
}

qsort(s,i,sizeof(s[0]),cmp);
zidian input;
while(scanf("%s",&input.find)!=EOF)
{
output=(zidian *)bsearch(&input,s,i,sizeof(zidian),cmp);//二分查询
if(output)
printf("%s/n",output->in);
else
printf("eh/n");
output=NULL;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: