Chinaunix首页 | 论坛 | 博客
  • 博客访问: 523856
  • 博文数量: 161
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-25 01:20
文章分类

全部博文(161)

文章存档

2011年(44)

2010年(47)

2009年(48)

2008年(22)

我的朋友

分类: C/C++

2009-06-24 01:17:41

写个程序,好久没用了!生了很多!感觉写的太烂了!很多地方可以改进性能的!想起算法又要费点时间!没多少精力了!草草了事,交差!

/*
功能:为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长
度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用
频率从大到小输出字母(小写字母)和使用频率(出现的次数).
运行环境:Dev-c++4.9.9.2.
作者:
Email:
  
     
*/

#include <stdio.h>
void WordInput(char *Word_Input);
void WordChange(char *Word_Input);
void WordStatistics(char *Word_Input,int *Statistics_Result);
void Bubble_Sort(int *Statistics_Result, int *Word_sample);
void Statistics_Put(int *Statistics_Result,int *Word_sample);
//主程序

int main(void)
{
    char Word_Input[200];
    int Statistics_Result[26]={0};
    int Word_sample[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','k','i','s','t','u','v','w','x','y','z'} ;
     //输入

     printf("请输入句子:\n");
     WordInput(Word_Input);
     //装换

     WordChange(Word_Input);
     //统计

     WordStatistics(Word_Input,Statistics_Result);
     //排序

     Bubble_Sort(Statistics_Result, Word_sample);
     //输出结果

     Statistics_Put(Statistics_Result,Word_sample);
     
     getchar();
     return 1;
}


/*********************************************输入字符*********************************/
void WordInput(char *Word_Input)
{
     int Number_Limit=0;
     //输入数据

     while( (scanf("%c", &Word_Input[Number_Limit]) )&& Word_Input[Number_Limit]!='\n'&& Number_Limit <200 )
          Number_Limit++;
}
/**********************************************字母大小写装换***************************/
void WordChange(char *Word_Input)
{
     //作为标志

     int flag=0;
     //检测是否到数组尾部

     while(Word_Input[flag]!='\0')
     {
         if(Word_Input[flag]>=65&&Word_Input[flag]<=90)
            Word_Input[flag]=Word_Input[flag]+32;
         flag++;
      }
       
}
/**********************************************统计字母个数 ******************************/
void WordStatistics(char *Word_Input,int *Statistics_Result)
{
     int flag=0;
     int number=0;
     while(Word_Input[flag]!='\0')
     { //在大字母内做装换

     
    // printf("%d\n", Statistics_Result[number]) ;

          if(Word_Input[flag]>=97&&Word_Input[flag]<=122)
             { //转换计算

                 number=Word_Input[flag]-97;
                 Statistics_Result[number]++;
              }
          flag++;
      }
}
/******************************************排序*****************************************/
void Bubble_Sort(int *Statistics_Result, int *Word_sample)
{
      int flag_in, flag_out, temp1,k,temp2;
      /*循环到没有比较范围*/
      for (flag_out=26; flag_out>0; flag_out=k)
         {
             /*每次预置k=0,循环扫描后更新k*/
             for ( flag_in=0, k=0; flag_in<flag_out; flag_in++)
                  {
                       /*大的放在后面,小的放到前面*/
                       if (*(Statistics_Result+ flag_in) > *(Statistics_Result+ flag_in+1))
                              {
                                   /*完成交换*/
                                   temp1 = *(Statistics_Result+ flag_in);
                                   temp2 = *(Word_sample+ flag_in);
                                  *(Statistics_Result+ flag_in) = *(Statistics_Result+ flag_in+1);
                                  *(Word_sample+ flag_in) = *(Word_sample+ flag_in+1);
                                  *(Statistics_Result+ flag_in+1) = temp1;
                                  *(Word_sample+ flag_in+1) = temp2;
                                  /*保存最后下沉的位置。这样k后面的都是排序排好了的*/
                                  k = flag_in;
                               }
                  }
         }
}
/******************************************输出结果*****************************************/
void Statistics_Put(int *Statistics_Result,int *Word_sample)
{
     int flag;
     //循环输出结果

     for(flag=25;flag>=0;flag--)
         printf("%c:%d\n",Word_sample[flag],Statistics_Result[flag]) ;
     printf("运算结束___\n");
}









阅读(734) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-06-05 02:23:14

大连法律咨询在线 http://www.fabowang.com 大连律师在线咨询 http://www.fabowang.com 大连法律顾问网 http://www.fabowang.com 大连律师咨询 http://www.fabowang.com