1042. 字符统计(20)

时间:2023-01-14 19:00:16

请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

输入格式:

输入在一行中给出一个长度不超过1000的字符串。字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内)。

输出格式:

在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。

输入样例:

This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........

输出样例:

e 7

 

 1 #include <stdio.h>
2 #include <string.h>
3 int main(){
4 char s[1001]="";
5 char n;
6 int num[129]={};
7 int i=0;
8 int j=0;
9 int max=0;
10 char chmax=0;
11 for(i=0;i<128;i++){
12 num[i]=0;
13 }
14 i=0;
15 while((n=getchar())!='\n'){
16 if(n>='a'&&n<='z'){
17 s[i]=n;
18 i++;
19 }else if(n>='A'&&n<='Z'){
20 s[i]=n+32;
21 i++;
22 }
23 }
24 //printf("%s\n",s);
25 for(i=0;i<128;i++){
26 for(j=0;j<strlen(s);j++){
27 if(i==s[j]){
28 num[i]++;
29 }
30 }
31 }
32
33 for(i=0;i<128;i++){
34 if(max<num[i]){
35 max=num[i];
36 chmax=i;
37 }
38 }
39
40 printf("%c %d",chmax,max);
41 return 0;
42 }