题目:
统计字符串中各字母(区分大小写)出现的频度并按字母在字符串中出现的次数从大到小排序。
代码:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
int i,j,k,temp,b[53][3];
printf("input a string :\n");
gets(a);
k=strlen(a);
for(i=0;i<26;i++)
{
b[i][0]=(i+97);
b[i+26][0]=(i+65);
b[i][1]=0;
b[i+26][1]=0;
}
for(i=0;i<k;i++)
{
for(j=0;j<26;j++)
{
if(a[i]=(97+j))
b[j][1]=b[j][1]+1;
else if(a[i]=(65+j))
b[j+26][1]=b[j+26][1]+1;
}
}
for(i=0;i<52;i++)
{
for(j=0;j<52-i;j++)
{
temp=b[j][0];
b[j][0]=b[j+1][0];
b[j+1][0]=temp;
temp=b[j][1];
b[j][1]=b[j+1][1];
b[j+1][1]=temp;
}
}
printf("按出现次数排序:\n");
for(i=0;i<52;i++)
{
if(b[i][0]!=0 &&b[i][1])
printf("%c=%d",(char)b[i][0],b[i][1]);
}
}
亲测有效哦
根据字符出现频率排序
网友评论