题目大意:给出n个数进行排序输出,内存限制2M。
解题思路:因为所给的排序数均小于100,所以开一个数组记录该数出现的次数即可。
#include <stdio.h>
const int N = 105;
int n, c[N];
void scanfINT(int& num) {
bool flag = false;
char ch;
num = 0;
while (ch = getchar(), ch < '0' || ch > '9') {
if (ch == '-') { flag = true; break; }
}
num = ch - '0';
while (ch = getchar(), ch >= '0' && ch <= '9') {
num = num * 10 + ch - '0';
}
if (flag) num *= -1;
}
void init() {
int a;
for (int i = 0; i < n; i++) {
scanfINT(a);
c[a]++;
}
}
void solve() {
int cnt = 0;
for (int i = 0; i < N; i++) {
while (c[i]) {
printf("%d", i);
c[i]--;
cnt++;
if (cnt == n) printf("\n");
else printf(" ");
}
}
}
int main() {
while (scanfINT(n), n) {
init();
solve();
}
return 0;
}