【问题描述】 编写程序实现:用一维数组进行存储从键盘输入一个字符串,统计并输出出现次数最多的字母(大小写字母为同一个字母)。如有多个字母出现次数相同,则输出ASCII值小的字母。 【输入形式】 长度为100以内,且至少包含一个字母的字符串,其中的字符可以是大写字母、小写字母和数字字符。 【输出形式】 出现次数次数最多的字母(大写)。 【样例输入】 abcabbc 【样例输出】 B
时间: 2023-06-08 15:07:06 浏览: 228
您好!针对您的问题,我能够提供如下的解答:
您可以通过以下的程序实现要求:
```
#include <stdio.h>
#include <string.h>
#define MAXN 100
int main(){
char str[MAXN];
int cnt[26]={0}; // 存储每个字母出现次数的数组
int len, i, max_cnt=0, max_index=0;
scanf("%s", str);
len = strlen(str);
// 统计每个字母出现的次数
for(i=0; i<len; i++){
if(str[i]>='A' && str[i]<='Z'){
cnt[str[i]-'A']++;
}
else if(str[i]>='a' && str[i]<='z'){
cnt[str[i]-'a']++;
}
}
// 找到出现次数最多的字母
for(i=0; i<26; i++){
if(cnt[i]>max_cnt){
max_cnt = cnt[i];
max_index = i;
}
}
// 输出结果
printf("%c", max_index+'A');
return 0;
}
```
该程序的思路如下:
1. 定义一个长度为 26 的数组 `cnt`,用来存储每个字母出现的次数,其中 `cnt[0]` 表示字母 A 出现的次数,`cnt[1]` 表示字母 B 出现的次数,以此类推。
2. 从键盘输入一个字符串,并计算出字符串的长度,然后依次遍历字符串中的每个字符,将字母出现的次数存储到数组 `cnt` 中。
3. 遍历 `cnt` 数组,找出出现次数最多的字母,并记录该字母的下标。
4. 输出该字母(大写)即可。
希望这个程序能够解决您的问题。如果您有任何疑问或需求,请随时告诉我!
阅读全文