C++实现编写一个程序,接收用户输入的一个字符串(可以包含空格),统计其中所有出现过的所有字符,并按照频率高低的顺序排列输出。频率相同的字符按输入顺序输出。
时间: 2024-06-10 14:07:40 浏览: 8
好的,这个问题是一个编程问题,非常有趣!下面是我给你提供的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CHAR 256
struct char_freq {
char ch;
int freq;
};
int main() {
char input_str[MAX_CHAR];
struct char_freq freq_table[MAX_CHAR] = { {0, 0} };
int i, j, k;
int len, num_unique_chars = 0;
printf("请输入一个字符串:\n");
fgets(input_str, MAX_CHAR, stdin);
len = strlen(input_str);
for (i = 0; i < len; i++) {
if (input_str[i] == ' ') {
continue;
}
for (j = 0; j < num_unique_chars; j++) {
if (freq_table[j].ch == input_str[i]) {
freq_table[j].freq++;
break;
}
}
if (j == num_unique_chars) {
freq_table[j].ch = input_str[i];
freq_table[j].freq++;
num_unique_chars++;
}
}
for (i = 0; i < num_unique_chars - 1; i++) {
for (j = i + 1; j < num_unique_chars; j++) {
if (freq_table[j].freq > freq_table[i].freq) {
struct char_freq tmp = freq_table[i];
freq_table[i] = freq_table[j];
freq_table[j] = tmp;
}
}
}
printf("出现过的所有字符及其频率如下:\n");
for (i = 0; i < num_unique_chars; i++) {
printf("字符 '%c' 出现 %d 次。\n", freq_table[i].ch, freq_table[i].freq);
}
return 0;
}
```
希望这个代码能够帮助你解决问题!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)