编写程序实现:用一维数组进行存储从键盘输入一个字符串,统计并输出出现次数最多的字母(大小写字母为同一个字母)。如有多个字母出现次数相同,则输出ASCII值小的字母。 【输入形式】 长度为100以内,且至少包含一个字母的字符串,其中的字符可以是大写字母、小写字母和数字字符。 【输出形式】 出现次数次数最多的字母(大写)。
时间: 2024-03-21 16:44:34 浏览: 21
好的,以下是 C 语言的实现代码,可以用一维数组进行存储从键盘输入的字符串,统计并输出出现次数最多的字母(大小写字母为同一个字母),如果有多个字母出现次数相同,则输出 ASCII 值小的字母的大写形式:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char s[101];
int cnt[26] = {0}; // 用数组统计每个字母出现的次数
int max_cnt = 0;
char max_char;
scanf("%s", s);
for (int i = 0; s[i] != '\0'; i++) {
if (isalpha(s[i])) { // 只统计字母出现的次数
cnt[toupper(s[i])-'A']++;
if (cnt[toupper(s[i])-'A'] > max_cnt) {
max_cnt = cnt[toupper(s[i])-'A'];
max_char = toupper(s[i]);
} else if (cnt[toupper(s[i])-'A'] == max_cnt && max_char > toupper(s[i])) {
max_char = toupper(s[i]);
}
}
}
printf("%c", max_char);
return 0;
}
```
首先,定义一个字符数组 `s` 存储从键盘输入的字符串,定义一个整型数组 `cnt` 统计每个字母出现的次数,初始值为 0。定义变量 `max_cnt` 记录出现次数最多的字母出现的次数,变量 `max_char` 记录出现次数最多的字母。用 `scanf()` 函数读取输入的字符串,用一个循环遍历字符串的每个字符,如果该字符是字母,则将其转换为大写字母,然后在 `cnt` 数组中给相应的字母出现次数加 1。同时,如果该字母出现的次数大于 `max_cnt`,则更新 `max_cnt` 和 `max_char`;如果该字母出现的次数等于 `max_cnt`,则比较其 ASCII 值,取较小的字母。最后,输出出现次数最多的字母的大写形式即可。