解析: 字符统计,要建立一个结构体,既储存字符,又储存出现的次数,最后按字符的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 }