用一维数组进行存储从键盘输入一个字符串,统计并输出出现次数最多的字母用C语言编写下面这个程序:大小写字母为同一个字母)。如有多个字母出现次数相同,则输出ASCII值小的字母。
时间: 2024-03-11 20:48:34 浏览: 70
C语言数组:C语言数组定义、二维数组、动态数组、字符串数组_C语言中文网1
好的,我来为您编写这个程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 1000 // 定义字符串最大长度
int main()
{
char str[MAX_LENGTH]; // 声明字符串
int freq[26] = {0}; // 声明字母频率数组,初始值为0
int i, max_freq = 0, max_index = 0;
printf("请输入一个字符串:\n");
fgets(str, MAX_LENGTH, stdin); // 从键盘读入字符串
int len = strlen(str); // 获取字符串长度
for (i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
freq[str[i] - 'a']++; // 统计小写字母频率
} else if (str[i] >= 'A' && str[i] <= 'Z') {
freq[str[i] - 'A']++; // 统计大写字母频率
}
}
// 找出出现次数最多的字母
for (i = 0; i < 26; i++) {
if (freq[i] > max_freq) {
max_freq = freq[i];
max_index = i;
}
}
printf("出现次数最多的字母是:%c\n", max_index + 'a');
return 0;
}
```
程序的思路如下:
1. 定义字符串和字母频率数组;
2. 从键盘读入字符串;
3. 遍历字符串,统计每个字母出现的频率;
4. 找出出现次数最多的字母;
5. 输出结果。
需要注意的是,程序中将大小写字母视为同一个字母,因此在统计频率时,需要将大写字母转换为小写字母。
阅读全文