根据字符出现频率排序

题目:

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

代码:

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

          }

}

亲测有效哦

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,402评论 0 2
  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 10,718评论 3 71
  • 又到了下乡的季节,几个年头了,总在这个时候,惦记着“房东大妈”和她的笋干,猜想着山乡是否发生了巨变,于是...
    东观阅读 838评论 0 1
  • 半轮薄日西山近,一晚凉风欲早秋。 闲趁黄昏时序好,单车一路任心悠。
    素年清时阅读 977评论 20 28
  • 设计模式六大原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类...
    viva158阅读 783评论 0 1