【问题描述】 编写程序实现:用一维数组进行存储从键盘输入一个字符串,统计并输出出现次数最多的字母(大小写字母为同一个字母)。如有多个字母出现次数相同,则输出ASCII值小的字母。 【输入形式】 长度为100以内,且至少包含一个字母的字符串,其中的字符可以是大写字母、小写字母和数字字符。 【输出形式】 出现次数次数最多的字母(大写)。用C语言
时间: 2024-03-23 11:41:24 浏览: 67
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[101];
int count[26] = {0}; // 存储每个字母的出现次数,从a到z依次对应0到25
// 读入字符串
scanf("%s", str);
// 统计每个字母的出现次数
int len = strlen(str);
for(int i = 0; i < len; i++)
{
if(str[i] >= 'a' && str[i] <= 'z') // 如果是小写字母,转换成大写字母
{
str[i] -= 32;
}
if(str[i] >= 'A' && str[i] <= 'Z') // 如果是大写字母,统计出现次数
{
count[str[i]-'A']++;
}
}
// 找出出现次数最多的字母
int max_count = 0, max_index = 0;
for(int i = 0; i < 26; i++)
{
if(count[i] > max_count)
{
max_count = count[i];
max_index = i;
}
}
// 输出出现次数最多的字母
printf("%c\n", max_index+'A');
return 0;
}
```
首先定义一个长度为26的整型数组count,存储每个字母的出现次数,从a到z依次对应0到25。然后读入字符串,遍历字符串,如果是小写字母,转换成大写字母,然后统计大写字母的出现次数。统计完成后,遍历整个count数组,找出出现次数最多的字母,并输出该字母的大写形式。
阅读全文