输入一个字符串,输出重新排序,要求,当字母出现次数相同时,按照字母表排序,当字母出现次数不同时,出现次数高的放到后面!如输入aatreddsa输出为erstddaaa
#include "stdio.h"
#include "conio.h"
void main()
{
int a[256],i,j,k,max;
char str[256],*p;
while ( 1 )
{ for ( i=0;i<256;i++ ) a[i]=0;
printf("请è¾å ¥å符串ï¼"); gets(str); if ( str[0]=='0' ) break;
p=str;
while ( *p )
{ if ( (((*p)>='a')&&((*p)<='z'))||(((*p)>='A')&&((*p)<='Z')) ) a[(*p)]++;
p++;
}
for ( i=max=0;i<256;i++ ) if ( max<a[i] ) max=a[i];
for ( i=1;i<=max;i++ )
for ( j=0;j<256;j++ )
if ( a[j]==i )
for ( k=0;k<i;k++ )
printf("%c",j);
printf("\n");
}
MEND: printf("\n"); system("pause");
}