看一下这个程序,怎么不会排序?
#include <stdio.h>#include <stdlib.h>
#include <string.h>
int main()
{
char str[26], s, temp2;
int i, m=0, num[26]={0}, k, temp1, g,t;
for(i=0;i<26;i++)
{
str[i]='a'+i;
}
while(s!='\n')
{
scanf("%c",&s);
g=(int)s-'a';
num[g]++;
}
for(i=0;i<m-1;i++)
{
t=i;
for(k=i+1;k<m;k++)
{
if(num[t]<num[k])
{
temp1=num[t];
num[t]=num[k];
num[k]=temp1;
temp2=str[t];
str[t]=str[k];
str[k]=temp2;
}
}
}
for(i=0;i<26;i++)
{
if(num[i]!=0)
printf("%c %d\n",str[i],num[i]);
}
return 0;
}
怎么改了以后程序才会排序!!!先排频率,由大到小,后按a—z的顺序排相同频率的。。。