按字符输入次数进行排序
输入一段字符串,按照每个字符输入的次数从大到小排序,输出字符及其对应的输入次数,我这段代码怎么不行啊,怎么改啊?#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[26], c[26],temp2;
int num[26]={0}, i, j, m, t, temp1;
gets(str);
m=strlen(str);
for(i=0;i<26;i++)
{
c[i]='a'+i;
for(j=0;j<m;j++)
{
if(str[j]==c[i])
num[i]++;
}
}
for(i=0;i<m-1;i++)
{
t=i;
for(j=i+1;j<m;j++)
{
if(num[j]>num[t])
{
temp1=num[j];
num[j]=num[t];
num[t]=temp1;
temp2=str[j];
str[j]=str[t];
str[t]=temp2;
}
}
}
for(i=0;i<26;i++)
{
if(num[i]!=0)
printf("%c %d\n",c[i],num[i]);
}
return 0;
}