C语言实现:【问题描述】 判断一个由a z这26个字符组成的字符串中哪个字符出现的次数最多。 Determine which character in a string composed of 26 characters a z appears the most times. 【输入形式】 第1行是测试数据的组数n,每组测试数据占1行,是一个由a z这26个字符组成的字符串,每行数据不 超过100个字符且非空。如果超出100个字符只保留前100个字符。 【输出形式】 n行,每行输出对应一个输入,一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个 空格。如果有多个字符出现次数相同且最多,那么输出ASCII码最小的那一个字符。 【样例输入】 2 abbccc adfadffasdf 【样例输出】 c 3 f 4
时间: 2024-03-03 18:49:28 浏览: 147
C语言和go语言之间的交互操作方法
好的,下面是 C 语言实现的代码,供你参考:
```c
#include <stdio.h>
#include <string.h>
#define MAXLEN 100 // 字符串的最大长度
#define CHARS 26 // 字符集中字符的数量
int main() {
int n, i, j, max;
char s[MAXLEN + 1];
int count[CHARS];
scanf("%d", &n);
getchar(); // 读取换行符
for (i = 0; i < n; i++) {
fgets(s, MAXLEN + 1, stdin);
// 统计字符出现的次数
memset(count, 0, sizeof(count));
for (j = 0; j < strlen(s); j++) {
if (s[j] >= 'a' && s[j] <= 'z') {
count[s[j] - 'a']++;
}
}
// 找出出现次数最多的字符
max = 0;
for (j = 1; j < CHARS; j++) {
if (count[j] > count[max]) {
max = j;
}
}
printf("%c %d\n", 'a' + max, count[max]);
}
return 0;
}
```
程序中的 `count` 数组记录了 26 个字符在字符串中出现的次数,具体思路如下:
- 对于每个输入的字符串,遍历它的每个字符,如果该字符是小写字母,则将对应的计数器加 1;
- 遍历完字符串后,找出出现次数最多的字符,输出它的 ASCII 码和出现次数。
程序运行时,会提示用户输入测试数据的组数,然后读入每组测试数据并输出结果。如果输入的字符串超过 100 个字符,则只取前 100 个字符进行处理。
阅读全文