题解 | #字符统计#
字符统计
https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
#include <stdio.h> #include <string.h> typedef struct node { char vo; int num; } node; void sort(node* fxx, int n) { for (int i = 1; i < n; i++) { for (int j = 0; j < n - i; j++) { if (fxx[j].num < fxx[j + 1].num) { node t; t = fxx[j]; fxx[j] = fxx[j + 1]; fxx[j + 1] = t; } else { if ((fxx[j].num == fxx[j + 1].num) && (fxx[j].vo > fxx[j + 1].vo)) { node x; x = fxx[j]; fxx[j] = fxx[j + 1]; fxx[j + 1] = x; } } } } } int main() { char x[1001]; gets(x); int s[130] = {0}; for (int i = 0; i < strlen(x); i++) { int k = x[i]; s[k]++; } node fxx[50]; int j = 0; for (int i = 48; i < 123; i++) { if (s[i] != 0) { fxx[j].vo = i; fxx[j].num = s[i]; j++; } } sort(fxx, j); for (int i = 0; i < j; i++) { printf("%c", fxx[i].vo); } return 0; }