用C++实现编写一个程序,接收用户输入的一个字符串(可以包含空格),统计其中所有出现过的所有字符,并按照频率高低的顺序排列输出。频率相同的字符按输入顺序输出。
时间: 2024-06-10 10:07:40 浏览: 86
一个C++语言编写的程序
好的,这是一个计算题。以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
struct freq {
char c;
int count;
};
int main() {
char str[1000];
struct freq f[100];
int i, j, k, len, count;
printf("请输入一个字符串:");
fgets(str, 1000, stdin);
len = strlen(str) - 1; // 去掉换行符
count = 0;
// 统计出现过的所有字符
for (i = 0; i < len; i++) {
for (j = 0; j < count; j++) {
if (f[j].c == str[i]) {
f[j].count++;
break;
}
}
if (j == count) {
f[count].c = str[i];
f[count].count = 1;
count++;
}
}
// 按频率高低的顺序排列输出
for (i = 0; i < count; i++) {
k = i;
for (j = i + 1; j < count; j++) {
if (f[j].count > f[k].count) {
k = j;
}
}
if (k != i) {
struct freq tmp = f[i];
f[i] = f[k];
f[k] = tmp;
}
printf("%c: %d\n", f[i].c, f[i].count);
}
return 0;
}
```
这个程序会先接收用户输入的一个字符串,然后统计其中所有出现过的所有字符,并按照频率高低的顺序排列输出。频率相同的字符按输入顺序输出。
阅读全文