文章

18

粉丝

0

获赞

3

访问

11.1k

头像
字母频率 题解:自用笔记
P1019 贵州大学机试题
发布于2024年3月5日 14:27
阅读数 693

初始化一个字母表并且将频数设为0,通过输入对单个字符逐一记录,考虑到有多个字母有相同频数且是出现次数最多的

#include<stdio.h>
typedef struct {
	char x;
	int count;
}Alphabet;
int main() {
	Alphabet tab[26];
	Alphabet max;
	char ch;
	int k = 0;
	for (int i = 0; i < 26; i++) {//初始化字母表
		tab[i].x = 'a' + i;
		tab[i].count = 0;
	}
	while((ch = getchar()) != '\n') {//一边输入一边统计
		if (ch >= 'a' && ch <= 'z') {
			tab[ch - 'a'].count++;
		}
		if (ch >= 'A' && ch <= 'Z') {
			tab[ch - 'A'].count++;
		}
	}
	max = tab[0];
	for (int i = 1; i < 26; i++) {//根据统计的频数找到频数最多
		if (max.count < tab[i].count) {
			max = tab[i];
		}
	}
	printf("%c %d", max.x, max.count);
	/*假设有多个频数最多的字母
	for (int i = 1; i < 26; i++) {
		if (max.count == tab[i].count) {
			printf("%c %d", tab[i].x, tab[i].count);
		}
	}*/
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发