题文
把数组按照元素个数由多到少排序。
例如数组:[1,2,5,3,2], 排序后,输出[2,2,1,5,3]
数组的元素均为正数,
#include<stdio.h>
int a[100001],c[100001];
int main(){
int d=1,k,kmax=-9999999,maxnum=-99999;
while(~scanf("%d",&k)){
a[d++]=k;
c[k]++;
if(kmax<k)kmax=k;
}
for(int i=0;i<=kmax;++i){
if(maxnum<k)maxnum=c[i];
}
printf("[");int ok=1;
for(int i=maxnum;i>0;--i){
for(int j=1;j<d;++j){
if(c[a[j]]==i){
for(int kk=1;kk<=i;++kk){
if(ok){
printf("%d",a[j]);ok=0;
}
else printf(",%d",a[j]);
}
c[a[j]]=0;
}
}
}
printf("]");
return 0;
} 
京公网安备 11010502036488号