UVA 10008

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

输入几个句子,然后求出每个字母所出现的次数,按格式输出

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<conio.h>
 4 void zhuanhua(char *s)//把小写字母转化为大写字母
 5 {
 6  int i;
 7  for(i=0;s[i]!='\0';i++)
 8     if(s[i]>='a'&&s[i]<='z')
 9         s[i]-=32;
10 }
11 struct stu{
12            int a;
13            char s;
14           };//设置结构体包括字母和字母出现的次数
15 int main()
16 {
17  struct stu zimu[26],temp;
18  int n,i,j;
19  char str[1000];
20  while(scanf("%d",&n)!=EOF)
21     {
22      n++;
23      for(i=0;i<26;i++)
24         {
25          zimu[i].a=0;
26          zimu[i].s=65+i;
27         }//结构体数组初始化
28      while(n--)
29        {
30         gets(str);
31         zhuanhua(str);
32         for(i=0;str[i]!='\0';i++)
33            {
34             if(str[i]>='A'&&str[i]<='Z')
35               {
36                j=str[i]-'A';
37                zimu[j].a++;//计数
38               }
39            }
40        }
41     for(j=1;j<26;j++)
42      
43         for(i=0;i<26-j;i++)
44          if(zimu[i].a<zimu[i+1].a)
45            {
46             temp=zimu[i];
47             zimu[i]=zimu[i+1];
48             zimu[i+1]=temp;
49            }//排序
50        
51     for(i=0;i<26;i++)
52       {
53        if(zimu[i].a==0)
54          break;//节省运行时间
55        printf("%c %d\n",zimu[i].s,zimu[i].a);
56       }
57     }
58      return 0;
59 }

 

posted @ 2013-02-18 16:36  执着追求的IT小小鸟  阅读(143)  评论(0编辑  收藏  举报