HDUOJ-------单词数

单词数

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 21651    Accepted Submission(s): 5228


Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
 
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
 
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
 
Sample Input
you are my friend
 
#
 
Sample Output
4
 
Author
Lily
 
Source
 
Recommend
 
思路: 先设置一个字符型数组来存储字符,然后逐一将每一个单词存到二维数组中。接着排序,然后统计不同即可!!
     刚开始数组开小了,runtime error很多次!!最后改到很大才过了,比较的那个....
                          估计用c++会好很多.....
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #define maxn 10001
 5 char paper[maxn][100]={''};
 6 char str[maxn]={''};
 7 int cmp(const void *a,const void *b)
 8 {
 9     return strcmp((char *)a,(char *)b);
10 }
11 int main()
12 {
13 
14     int i,count,k;
15     bool flag;
16     while(gets(str),*str!='#')
17     {
18         flag=true;
19         count=-1;
20         memset(paper,'',sizeof(paper));
21         for( i=0 ; str[i]!='' ; i++ )
22         {
23             if(flag&&str[i]!=' ')
24             {
25                 flag=false;
26                 count++;
27                 k=0;
28             }
29             else 
30              if(flag==false&&str[i]==' ')
31             {
32                 flag=true;
33                 continue;
34             }
35          if(str[i]!=' ')
36          {
37              paper[count][k++]=str[i];
38          }
39          
40         }
41         memset(str,'',sizeof(str));
42         //for(i=0;i<=count;i++)
43          //puts(paper[i]);
44     if(count>0)
45         qsort(paper,count+1,100*sizeof(char),cmp);
46     /*    for(i=0;i<=count;i++)
47             puts(paper[i]);
48     */
49         int sum=1;
50         for(i=1;i<=count;i++)
51         {
52             if(strcmp(paper[i-1],paper[i])!=0)
53                 sum++;
54         }
55         if(count==-1)sum=0;
56         printf("%d
",sum);
57 
58     }
59     return 0;
60 }
View Code
原文地址:https://www.cnblogs.com/gongxijun/p/3204827.html