1022. Digital Library (30)

来源:互联网 发布:腾讯数据恢复留言 编辑:程序博客网 时间:2024/05/21 15:05

建立book结构体,关键字排序,不需要高级查找算法就能AC

注意scanf不会吃回车,gets会吃回车

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
#include <cstdio>#include <cstring>#include <cstdlib>int n,m;char str[81];typedef struct{  char id[8];  char info[6][81];  char key[5][11];}book;book bk[10001];int cmp(const void *a1,const void *a2){  return strcmp(((book *)a1)->id,((book *)a2)->id);}void find(int k){  bool found=false;  if(k!=3){    for(int i=0;i<n;i++)      if(strcmp(bk[i].info[k],str)==0){        found=true;        puts(bk[i].id);      }  }  else{    for(int i=0;i<n;i++)      for(int j=0;j<5;j++)        if(strcmp(bk[i].key[j],str)==0){          found=true;          puts(bk[i].id);        }  }  if(!found) printf("Not Found\n");}int main(){  scanf("%d",&n);  getchar();   //把回车吃掉  for(int i=0;i<n;i++){    gets(bk[i].id);    gets(bk[i].info[1]);    gets(bk[i].info[2]);    scanf("%s",bk[i].key[0]);    for(int j=1;getchar()!='\n';j++)      scanf("%s",bk[i].key[j]);    gets(bk[i].info[4]);    gets(bk[i].info[5]);  }  qsort(bk,n,sizeof(book),cmp);  scanf("%d",&m);  for(int i=0;i<m;i++){    int num;    scanf("%d: ",&num);    gets(str);    printf("%d: %s\n",num,str);    find(num);  }  return 0;}

0 0
原创粉丝点击