文章
18
粉丝
0
获赞
3
访问
11.1k
初始化一个字母表并且将频数设为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;
}
登录后发布评论
暂无评论,来抢沙发