美文网首页
根据字符出现频率排序

根据字符出现频率排序

作者: 独孤蝴蝶 | 来源:发表于2019-09-18 21:04 被阅读0次

题目:

统计字符串中各字母(区分大小写)出现的频度并按字母在字符串中出现的次数从大到小排序。

代码:

#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]);

          }

}

亲测有效哦

根据字符出现频率排序

相关文章

网友评论

      本文标题:根据字符出现频率排序

      本文链接:https://www.haomeiwen.com/subject/huzkuctx.html