zoukankan      html  css  js  c++  java
  • csu 1148 词典

    快排、二分查找,对于我来说是道好题,对大牛来说,瞄一眼就跳过了。。。

     1 # include <stdio.h>
    2 # include <string.h>
    3 # include <stdlib.h>
    4
    5 # define MAXN 100005
    6
    7 typedef struct {
    8 char s[12];
    9 char ss[12];
    10 } word;
    11
    12 word dic[MAXN];
    13 word key;
    14
    15 int cmp(const void *a, const void *b)
    16 {
    17 return strcmp((*(word *)a).ss, (*(word *)b).ss);
    18 }
    19
    20 char *re_fgets(char *s1, char *s2, FILE *iop, const int ch);
    21
    22 int main()
    23 {
    24 int n;
    25 word *tmp;
    26
    27 n = 0;
    28 while (NULL != re_fgets(dic[n].s, dic[n].ss, stdin, ' '))
    29 ++n;
    30 qsort(dic, n, sizeof(word), cmp);
    31
    32 while (~scanf("%s", key.ss))
    33 {
    34 tmp = bsearch(&key, dic, n, sizeof(word), cmp);
    35 if (tmp != NULL) printf("%s\n", (*tmp).s);
    36 else printf("eh\n");
    37 }
    38
    39 return 0;
    40 }
    41
    42 char *re_fgets(char *s1, char *s2, FILE *iop, const int ch)
    43 {
    44 register int c;
    45 register char *cs;
    46
    47 cs = s1;
    48 c = getc(iop);
    49 if (c == '\n' || c == EOF) return NULL;
    50 else *cs++ = c;
    51 while ((c = getc(iop)) != ch && c != EOF)
    52 *cs++ = c;
    53 *cs = '\0';
    54 cs = s2;
    55 while ((c = getc(iop)) != '\n' && c != EOF)
    56 *cs++ = c;
    57 *cs = '\0';
    58 return cs;
    59 }

    输入的处理有点复杂,仿照 gets(),寄存器变量看来是快。。

  • 相关阅读:
    分布式session管理解决方案
    RabbitMQ知识汇总
    RabbitMQ之集群模式总结
    Flexbox参数详解
    CSS Lint
    javascript中的defer属性和async属性
    简介BFC
    GIT 牛刀小试 (第二发)
    GIT 牛刀小试 (第一发)
    如何让浏览器支持HTML5标签
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2399547.html
Copyright © 2011-2022 走看看