c语言程序设计综合实验77157

c语言程序设计综合实验77157

ID:19769033

大小:29.00 KB

页数:9页

时间:2018-10-06

c语言程序设计综合实验77157_第1页
c语言程序设计综合实验77157_第2页
c语言程序设计综合实验77157_第3页
c语言程序设计综合实验77157_第4页
c语言程序设计综合实验77157_第5页
资源描述:

《c语言程序设计综合实验77157》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计综合实验实验题目:文件操作与字符处理实验班级:软件工程学生学号:学生姓名:任课老师:提交时间:2012.12.25一.题目与运行说明(1).程序中所使用的主要变量intflag=0,wflag=0,i,j,k,max,index[5]charwordt[20];(2).数据输入的形式和输入值的范围无(3).数据输出的形式%s或%s_%d(4).程序所能达到的功能以及出错处理存在文本文件,其内容为一篇英文文章(以EOF作为结束标志)。现读取该文本文件内容,统计文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序

2、输出,次数相同时按字典顺序输出,不足5个单词时,按序输出全部单词)。二.程序设计思路用二维数组wordc临时接收文件中的单词,当所输入的字符为字母时,把字母接到wordc后面,把wordc中的单词与单词信息记录c1[]作比较,若此单词已经出现过,则出现频数count++否则新建一个结构空间来记录该单词。最后统计每个单词出现的次数,出现频数高的优先输出,其余降序排列,最后在屏幕中输出结果。三.程序清单#include#include#include#include//定义words中所记录的不

3、同单词的数量,从0开始记录//一开始没有记录单词,当记录一个之前未记录过的单词时,n=n+1intn=-1;//记录单词信息,包括单词的内容和单词出现频数structwords{intcount;charch[20];}word[10000];main(){//index的元素初始化为-1,意为未记录FILE*fp;intflag=0,wflag=0,a,b,c,max,index[5]={-1,-1,-1,-1,-1};charwordc[20];for(a=0;a<=9999;a++)word[a].count=0;fp=fopen("case1.in","r

4、");//以下程序段用wordc临时接收文件中的单词while(!feof(fp)){b=0;c=0;for(a=0;a<=19;a++){fscanf(fp,"%c",&wordc[a-b]);//当所输入的字符为字母时,把字母接到wordt后面//用if来排除非字母的字符if(wordc[a-b]>='A'&&wordc[a-b]<='Z')wordc[a-b]=wordc[a-b]-'A'+'a';if(wordc[a-b]==''){b++;continue;}//若输入字符为非字母时,跳出循环,把数组最后的元素换成''if(!(wordc[a-b

5、]>='a'&&wordc[a-b]<='z'

6、

7、wordc[a-b]>='A'&&wordc[a-b]<='Z'

8、

9、wordc[a-b]=='''

10、

11、wordc[a-b]=='-')){break;}}wordc[a-b]='';//把wordc中的单词与单词信息记录c1[]作比较//若此单词已经出现过,则出现频数count++//否则新建一个结构空间来记录该单词for(a=0;a<=n;a++){if(strcmp(wordc,c1[a].ch)==0&&wordc!=""){c1[a].count++;wflag=1;break;}elseif(w

12、ordc==""){wflag=1;break;}}if(wflag==0){n++;strcpy(c1[n].ch,wordc);c1[n].count++;}wflag=0;}fclose(fp);//以下程序段用来比较记录中各单词的出现频数//出现频数高的优先输出,其余降序排列for(c=0;c<=4;c++){max=0;for(a=0;a<=n;a++){if(c1[a].count>=max){flag=0;for(b=0;b<=4;b++){if(index[b]==a){flag=1;break;}}//以下程序段的功能是当某几个单词的出现频数

13、相同时,把它们按字母表顺序排列if(flag==0){max=c1[a].count;if(c!=0)if(c1[a].count==c1[index[c-1]].count){if(strcmp(c1[a].ch,c1[index[c-1]].ch)<0){index[c-1]=a;}}index[c]=a;}}}}//若单词的字母表优先度高,则把它的index放在同频数单词之前//该index之下的单词和全部向后退一格for(a=0;a<=3;a++)for(c=c+1;c<=4;c++){if(c1[index[a]].count==word[index[c

14、]].co

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

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

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