赞
踩
#include#include#include
structS_word
{intnum;char a[15];//单词的长度
};intmain()
{struct S_word W[300]; //定义一个结构体W
inti,m,n,k;char b[10]; //用来和a【10】交换的数组
FILE *fp; //定义文件
char ch; //从文件中读取字符
int flag=0; //标志空格后面是否有单词
int j=0;int temp; //排序时交换用
char filename[10];/****************首先将出现次数均设置为1****************************/
for(i=0;i<300;i++)
{ W[i].num=1;
}
i=0;/****************首先将出现次数均设置为1****************************/
/****************打开文件****************************/printf("Please input the name of the file :\n");
scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL)
{
printf("error opening!");
exit(0);
}/****************打开文件****************************/
/****************读取文件内容****************************/
while(!feof(fp))
{
ch=fgetc(fp);
W[i].a[j]=‘\0‘;if(ch>=65&&ch<=90||ch>=97&&ch<=122)
{
W[i].a[j]=ch; //识别单词
j++;
flag=1;
}else if(ch==‘ ‘&&flag==1)
{
flag=0;
j=0;
n=i;
i++;if(n>=1) //每一个单词跟前面的比较,如果相同就使次数加一
{for(m=0;m
{if(strcmp(W[n].a,W[m].a)==0)
{
W[m].num++;
i=i-1; //如果单词相同则认为是一个单词
}
}
}
}
}/****************根据单词出现次数进行排序***************************/
for(n=0;n
{
k=n;for(j=n+1;jW[k].num)
{ k=j;
temp=W[k].num;
W[k].num=W[n].num;
W[n].num=temp;
strcpy(b,W[k].a);
strcpy(W[k].a,W[n].a);
strcpy(W[n].a,b);
}
}/****************根据单词出现次数进行排序**********/
/****************输出部分**************************/printf("The most commonly 10 words:\n");for(n=0;n<=9;n++)
{
printf("%s\n",W[n].a);
printf("其出现次数为:");
printf("%d\n",W[n].num);
}/****************输出部分**************************/
return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。