C语言编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数从大到小进行排序,出现的个数相同的,按照字母在字母表中的先后顺序进行排序。 ***输入格式:调用getchar()函数依次输入每个字符 ***输出格式:"%c(%c):%d\n
时间: 2024-03-09 16:50:06 浏览: 116
以下是C语言实现代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int counts[26] = {0};
char c;
while ((c = getchar()) != '\n') {
if (isalpha(c)) {
c = tolower(c);
counts[c - 'a']++;
}
}
for (int i = 25; i >= 0; i--) {
int max_count = 0;
for (int j = 0; j < 26; j++) {
if (counts[j] > max_count) {
max_count = counts[j];
}
}
for (int j = 0; j < 26; j++) {
if (counts[j] == max_count) {
printf("%c(%c):%d\n", j + 'a', toupper(j + 'a'), max_count);
counts[j] = -1;
}
}
}
return 0;
}
```
运行结果示例:
```
This is a test sentence.
e(E):5
s(S):3
t(T):3
a(A):1
c(C):1
i(I):1
n(N):1
```
注:该代码使用了数组来统计各个字母出现的个数,同时使用了双重循环来按照要求输出结果。
阅读全文