关于这题OJ吧,不要被迷惑了,
输入一个仅由字母(含大小写)构成的字符串,按照每个字符的出现次数降序输出,如果次序相同就按照ASCII码升序。(字母出现几次就输出几次,注意:’A’和’a’不是同一字符)
多组数据,每个数据仅一行包含一个字符串,长度不超过1000。
样例:
输入
AabeAqaeaACA
输出
AAAAaaaeeCbq
-----代码如下---------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char ch[1005];
int a[1005]={0},i,j;
while(scanf("%s",ch)!=EOF)
{
int len=strlen(ch);
for(i=0;i<len;i++)
{
j=ch[i]-'A';
a[j]++;
}
while(1)
{
int max=0,m;
for(j=0;j<58;j++)
{
if(a[j]>max)
{
max=a[j];
m=j;
}
}
if(max==0)
{
printf("\n");
break;
}
else
{
for(i=0;i<a[m];i++)
{
printf("%c",'A'+m);
}
a[m]=0;
}
}
}
return 0;
}