UVA10815 - Andy's First Dictionary

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756

这个题错了十几次 runtime 占了10次 错了一天  最后终于改对了 用一个小数组把单词存起来 然后把这个单词复制给一个二维数组,复制的时候查找一下前面是否有重复的 如果没有就复制给它,然后用快排对所有的进行排序。

View Code
 1 #include <stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 int cmp(const void *a, const void *b)
 5 {
 6    return strcmp((char *)a, (char *)b);
 7 }
 8 int main()
 9 {
10     int i, g = 0, s,q,in;
11     char c,x[5005][21],w[21];
12     s = 0;
13     while((c = getchar())!=EOF)
14     {
15         if(c>='a'&&c<='z')
16         {
17             w[g++] = c;
18         }
19         else
20         if(c>='A'&&c<='Z')
21         {
22             w[g++] = c+32;
23         }
24         else
25         {
26             if(g!=0)
27             {
28                 w[g] = '\0';
29                 for (in = i = 0; i < s; ++i)
30                 if (strcmp(x[i], w) == 0)
31                 {
32                     in = 1;
33                     break;
34                 }
35                 if (!in)
36                 {
37 
38                     strcpy(x[s], w);
39                     s++;
40                 }
41                 g = 0;
42             }
43         }
44     }
45     qsort(x, s, sizeof(x[0]), cmp);
46     for(i = 0 ; i < s ; i++)
47     {
48         puts(x[i]);
49     }
50     return 0;
51 }

 

posted @ 2012-06-04 01:00  _雨  阅读(207)  评论(0)    收藏  举报