编写C语言的一个程序,【问题描述】 编写程序实现:用一维数组进行存储从键盘输入一个字符串,统计并输出出现次数最多的字母(大小写字母为同一个字母)。如有多个字母出现次数相同,则输出ASCII值小的字母。 【输入形式】 长度为100以内,且至少包含一个字母的字符串,其中的字符可以是大写字母、小写字母和数字字符。 【输出形式】 出现次数次数最多的字母(大写)。 【样例输入】 abcabbc 【样例输出】 B
时间: 2024-03-23 18:44:00 浏览: 54
C语言程序设计-输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数;
5星 · 资源好评率100%
好的,以下是针对你的问题的C语言代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int freq[26] = {0}; // 初始化计数器数组
int max_freq = 0;
char max_char;
printf("请输入一个字符串:");
scanf("%s", str);
for(int i = 0; str[i] != '\0'; i++) {
if(isalpha(str[i])) { // 只考虑字母
freq[toupper(str[i]) - 'A']++; // 统计计数器
if(freq[toupper(str[i]) - 'A'] > max_freq) { // 更新最大频率和对应的字符
max_freq = freq[toupper(str[i]) - 'A'];
max_char = toupper(str[i]);
} else if(freq[toupper(str[i]) - 'A'] == max_freq && toupper(str[i]) < max_char) {
max_char = toupper(str[i]); // ASCII值小的字母
}
}
}
printf("%c\n", max_char);
return 0;
}
```
该代码首先定义了一个 `str` 字符数组和一个 `freq` 整型数组,其中 `freq` 数组用来统计每个字母出现的次数。然后通过 `scanf()` 函数从标准输入读入一个字符串。接下来,程序遍历字符串中的每个字符,如果该字符是字母,则将其转换为大写字母并更新对应的计数器。同时,也更新出现次数最多的字母。如果有多个字母出现次数相同,则输出ASCII值小的字母。最后,程序输出出现次数最多的字母(大写)。
阅读全文