C语言实现输入字符串,字符串由英文字母、数字、标点符号和运算符号组成 (不含空格)。 统计每个字符在该字符串中出现次数,按出现次数从大到小的顺序,将字符和其出现次数输出。
时间: 2024-05-08 15:14:47 浏览: 8
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char str[MAX_LEN]; // 存储输入字符串
int count[128] = {0}; // 存储每个字符出现次数,ASCII 码表共有 128 个字符
// 输入字符串
printf("请输入字符串:");
fgets(str, MAX_LEN, stdin);
str[strlen(str) - 1] = '\0'; // 去掉字符串末尾的换行符
// 统计每个字符出现次数
for (int i = 0; i < strlen(str); i++) {
count[(int)str[i]]++;
}
// 按出现次数从大到小输出字符和出现次数
printf("字符出现次数统计(按出现次数从大到小):\n");
for (int i = 0; i < 128; i++) {
int max_count = 0; // 最大出现次数
char max_char = '\0'; // 出现次数最多的字符
// 找出出现次数最多的字符
for (int j = 0; j < 128; j++) {
if (count[j] > max_count) {
max_count = count[j];
max_char = (char)j;
}
}
// 输出出现次数最多的字符及其出现次数
if (max_count > 0) {
printf("'%c': %d 次\n", max_char, max_count);
count[max_char] = 0; // 将该字符的出现次数置为 0,避免重复输出
}
}
return 0;
}
```