解析:  字符统计,要建立一个结构体,既储存字符,又储存出现的次数,最后按字符的ascii码排序。

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char ch[10000];
 5     struct str{
 6         int a;
 7         int num;
 8     }count[200];
 9     int i, j, k;
10     while(gets(ch) != NULL){
11         for(i = 0; i < 200; i++){
12             count[i].num = 0;
13             count[i].a = i;
14         }
15         for(i = 0; ch[i]; i++)
16             if((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z'))
17                 count[ch[i]].num++;
18         for(i = 0; i < 200; i++)
19             for(j = i + 1; j < 200; j++)
20                 if(count[i].num < count[j].num){
21                     struct str t = count[i];
22                     count[i] = count[j];
23                     count[j] = t;
24                 }
25         for(i = 0; i < 200; i++)
26             if(count[i].num >count[i+1].num){
27                 k = i;
28                 break;
29             }
30         for(i = 0; i <= k; i++){
31             for(j = i + 1; j <= k; j++)
32                 if(count[i].a > count[j].a){
33                     struct str t = count[i];
34                     count[i] = count[j];
35                     count[j] = t;
36                 }
37                 putchar(count[i].a);
38         }
39         printf(" %d\n", count[0].num);
40     }
41     return 0;
42 }