读入文本,找出出现频率最高的10个单词~~~~
2014-03-02 15:21
375 查看
思路:先创建一个结构体word,用来存放单词,再创建一个空的与其一样的结构体o用来交换
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct word
{
char c[30];
int n;
}w[10000];
struct word o;
下面程序主体,变量声明,打开文本文件看是否文件为空
void main()
{
FILE *fp;
char ch;
int k=0,h,m,l,j,x,i=0,sum;
fp=fopen("D://huang.txt","r");
if(fp==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
下面代码将单词存入结构体用while,if循环
while(!feof(fp))
{
ch=fgetc(fp);
if(ch<='Z'&&ch>='A')
ch=ch+32;
if(ch<='z'&&ch>='a')
{
w[k].c[i]=ch;
i++;
h=1;
}
else
{if(h==1)
k++;
h=0;
i=0;
}
sum=k;
}
下面是判断是否有相同单词,若有将结构体中的单词出现次数n置0
for(i=0;i<sum;i++)
{
w[i].n=1;
}
for(m=0;m<sum;m++)
{
for(l=m+1;l<sum;l++)
{
if(strcmp(w[m].c,w[l].c)==0)
{
if(w[m].n==0||w[l].n==0)
continue;
else
{
w[m].n++;
w[l].n=0;
}
}
下面是按着单词出现次数n,进行排序
for(i=0;i<sum;i++)
for(j=i+1;j<sum;j++)
{
if(w[i].n<w[j].n)
{
o=w[i];
w[i]=w[j];
w[j]=o;
}
}
下面是将结果输出再屏幕
printf("单词总数%d\n",sum);
for(x=0;x<10;x++)
printf("单词%s 出现次数\t%d\n",w[x].c,w[x].n);
fclose(fp);
}
结果截图:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct word
{
char c[30];
int n;
}w[10000];
struct word o;
下面程序主体,变量声明,打开文本文件看是否文件为空
void main()
{
FILE *fp;
char ch;
int k=0,h,m,l,j,x,i=0,sum;
fp=fopen("D://huang.txt","r");
if(fp==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
下面代码将单词存入结构体用while,if循环
while(!feof(fp))
{
ch=fgetc(fp);
if(ch<='Z'&&ch>='A')
ch=ch+32;
if(ch<='z'&&ch>='a')
{
w[k].c[i]=ch;
i++;
h=1;
}
else
{if(h==1)
k++;
h=0;
i=0;
}
sum=k;
}
下面是判断是否有相同单词,若有将结构体中的单词出现次数n置0
for(i=0;i<sum;i++)
{
w[i].n=1;
}
for(m=0;m<sum;m++)
{
for(l=m+1;l<sum;l++)
{
if(strcmp(w[m].c,w[l].c)==0)
{
if(w[m].n==0||w[l].n==0)
continue;
else
{
w[m].n++;
w[l].n=0;
}
}
下面是按着单词出现次数n,进行排序
for(i=0;i<sum;i++)
for(j=i+1;j<sum;j++)
{
if(w[i].n<w[j].n)
{
o=w[i];
w[i]=w[j];
w[j]=o;
}
}
下面是将结果输出再屏幕
printf("单词总数%d\n",sum);
for(x=0;x<10;x++)
printf("单词%s 出现次数\t%d\n",w[x].c,w[x].n);
fclose(fp);
}
结果截图:
相关文章推荐
- 找出文本中出现频率最高的10个单词(java实现)
- 一个文本文件统计各个单词出现的频率最高的10个词以及次数
- 给定一个file, 查找出里面出现频率最高的10个单词
- 一篇文章中求出现频率最高的10个单词(C++实现tanglanting)
- 如何从10亿查询词找出出现频率最高的10个?
- 怎样从10亿查询词找出出现频率最高的10个
- 分析一个文本文件中各个单词出现的频率,把频率最高的10个词打印出来
- 统计一TXT文档中单词出现频率,输出频率最高的10个单词
- 统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数
- 在20H后放入10个字节,用51汇编,找出重复出现频率最高的字节
- 写一个程序,分析一个文本文件中各个词出现的频率,并且把频率最高的10个词打印出来。文本文件大约是30KB~300KB大小。
- 怎么从10亿个查询词找出出现频率最高的10个
- 写一个程序,分析一个文本文件中各个词出现的频率,并且把频率最高的10个词打印出来。文本文件大约是30KB~300KB大小
- 如何从10亿查询词找出出现频率最高的10个? (Top K问题)
- 如何从10亿查询词找出出现频率最高的10个?
- linux shell查找文本中n个出现频率最高的单词
- Linux下统计文本文件中前n个出现频率最高的单词
- 怎样从10亿查询词找出出现频率最高的10个
- 查找文本中n个出现频率最高的单词
- 怎样从10亿查询词找出出现频率最高的10个