Poradziłem sobie. Jakby ktoś kiedyś potrzebował działający kod:
#include <stdio.h>
int A[] = {3, 6, 3, 2, 7, 1, 7, 1};
int n = sizeof(A) / sizeof(A[0]);
int Z[] = {};
int main()
{
int max = 0;
for(int i=0; i<n; i++){
if(A[i]>max){
max=A[i];
Z[max] = 0;
}
}
for(int i=0; i<n; i++){
Z[A[i]]++;
}
for(int i=0; i<=max; i++){
for(int j=1; j<=Z[i]; j++){
printf("%d ", i);
}
}
return 0;
}