统计字母的使用频率c语言实现.doc

统计字母的使用频率c语言实现.doc

ID:56718964

大小:78.00 KB

页数:6页

时间:2020-07-06

统计字母的使用频率c语言实现.doc_第1页
统计字母的使用频率c语言实现.doc_第2页
统计字母的使用频率c语言实现.doc_第3页
统计字母的使用频率c语言实现.doc_第4页
统计字母的使用频率c语言实现.doc_第5页
资源描述:

《统计字母的使用频率c语言实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、字母频率计1#include#includemain(){intx;//数组下标变量,详情看代码intmax;//出现频率最高的字母intchar_count[26];//26个字母出现字数的统计charc;/*将数组初始化,因为我们还没有输入嘛,所以a~z都为0啦*/for(x=0;x<26;x++){char_count[x]=0;}while((c=getchar())!=EOF){if(isalpha(c))/*详情见文末*/{c=tolower(c);//大写转换为小写++char_count[c-'a'];}}max

2、=0;//初始化/*找出出现频率最高的字母*/for(x=0;x<26;x++){if(char_count[x]>max){max=char_count[x];printf("maxis%d",max);}}/*打印直方图*/for(;max>0;max--){for(x=0;x<26;x++){if(char_count[x]>=max){putchar('x');}elseputchar('');}putchar('');}/*打印下标,即abcdefghijklml....*/for(x=0;x<26;x++){putchar('a'+x);}retu

3、rn0;}字母频率计2#includevoidmain(){charch;//ch用来每次接收一个字符inti,s[26]={0};//数组s[]用来统计每个小写字母的个数printf("pleaseinputastring:");scanf("%c",&ch);while(ch!='')//输入一行字符,以回车键结束{if(ch>'A'&&ch<'Z')//遇到大写字母时,转换成小写来处理ch+=32;s[ch-'a']++;//0~25对应a~zscanf("%c",&ch);}printf("");for(i=0;i<26;i+

4、+)if(s[i])//只输出输入过的字母统计printf("%c:%d",(char)(i+'a'),s[i]);//(char)(i+'a')用强制类型转换,输出对应字母}字母频率计3《统计字母的使用频率》实验报告一、问题描述:为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现次数)。二、程序设计的基本思想,原理和算法描述:定义一个将大写字母转化为小写字母的函数:charalphabet(chary)程序的代码:

5、定义三个数组a[200],b[26],c[26]并把c[26]赋初值0定义变量x,i,j,k输入英文字符串将大写字母改写成小写字母统计每个字母的个数,存在数组c[26]中将26个字母赋值给b[26]比较字母个数大小,个数多的排到前面按频率大小输出字母和频率结束三、源程序及注释:#include"stdio.h"#include"windows.h"voidmain(){charalphabet(chary);//声明alphabet函数chara[200],b[26];//a表示输入的字母,b表示26个字母intc[26]={0};//c代表字母出现的次数char

6、x;inti,j,k;printf("请输入一个不包括空格的英文字符串:");scanf("%s",&a);//输入字符;gets(a),可以有空格for(i=0;i<200;i++)//将大写字母改成小写字母a[i]=alphabet(a[i]);for(j=0,x='a';j<26;j++,x++)//统计每个字母个数for(i=0;i<200;i++)if(a[i]==x)c[j]++;for(k=0;k<26;k++)//将26个字母赋值给bb[k]='a'+k;for(i=0;i<25;i++)//比较字母个数大小,个数多的排到前面for(j=25;

7、j>i;j--)if(c[j]>c[j-1]){k=c[j-1];c[j-1]=c[j];c[j]=k;x=b[j-1];b[j-1]=b[j];b[j]=x;}system("cls");printf("以下是输出结果:");for(k=0;k<26;k++)//按频率大小输出字母和频率printf("字母%c使用的次数是:%d",b[k],c[k]);system("pause");}charalphabet(chary)//定义一个函数,将大写字母转化为小写字母{if(y>='A'&&y<='Z')y=y+32;return(y);}四、运行输出结果

8、:五、调试

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。