PTA 乙级1042 字符统计 (20 分)

匿名 (未验证) 提交于 2019-12-02 23:57:01

1042 字符统计 (20 分)

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

输入格式:

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

输出格式:

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

输入样例:

This is a simple TEST. There ARE numbers and other symbols 1&2&3…
输出样例:

e 7
代码思路:把所有的大写字符转换为小写,然后再统计个数。

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int num[30];  int main() { 	char c[2000]; 	gets(c); 	int n=strlen(c); 	for(int i=0;i<n;i++) 	{ 		if(c[i]>='a'&&c[i]<='z') 		{ 			num[c[i]-'a'+1]++; 		} 		if(c[i]>='A'&&c[i]<='Z') 		{ 			c[i]=c[i]+32; 			num[c[i]-'a'+1]++; 		} 	} 	int max=0; 	char flag='a'; 	for(int i=0;i<24;i++) 	{ 	if(num[i]>max) 	{ 		max=num[i]; 		flag='a'+i-1; 		}	 	} 	printf("%c %d",flag,max); 	return 0; } 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!