| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4103 人关注过本帖
标题:DONE统计一篇文章中各单词出现的频率!
取消只看楼主 加入收藏
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
 问题点数:0 回复次数:7 
DONE统计一篇文章中各单词出现的频率!
统计一篇文章中各单词出现的频率!
我是这样想的:
用一个二维字符数组a[80][80]存这篇文章,(为简单起见,我先设这篇文章中无标点,仅有空格,而且单词间的空格仅有一个.),a[i]存一行.每一行中的单词可存入一维数组a[i]中,怎么统计各个单词的个数呢?
请指导,谢谢~~

[此贴子已经被作者于2007-11-18 10:36:40编辑过]

搜索更多相关主题的帖子: 文章中 DONE 单词 频率 统计 
2007-08-30 18:06
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 

飞燕,能祥细一点吗?谢谢~~


一分耕耘,一分收获。
2007-08-30 18:12
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 

老大,能提供一些代码?谢谢.我想了很长时间了......


一分耕耘,一分收获。
2007-08-31 10:49
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 

#include<stdio.h>
#include<string.h>
struct words{
char word[80];
int num;
} passage[10];


main()
{


char s[]="This is C programming text This is C text";
char a[10][80];
int i,j,k,t,r,u;
i=j=k=t=u=0;

for(i=0;i<10;i++){
passage[i].num=0;
}

i=0;
while(k<strlen(s)){
while(s[k]!=' '&&k<strlen(s)){
a[i][j]=s[k];
j++;
k++;
}

a[i][j]='\0';
i++;
k++;
j=0;
}

for(t=0;t<i;t++){
puts(a[t]);
}
//这以上程序是将char s[]存放在数组a[10][80]中,
//其中a[i]放入一个单词。具体见论坛:
//将char s[]存放在数组a[5][20]

while(strlen(passage[u++].word)>0){
for(t=0;t<i-1;t++){
for(r=t+1;r<i;r++){
if(strcmp(a[t],a[r])==0){
strcpy(passage[u].word,a[t]);
passage[u].num++;
}
}
}

}

for(r=0;r<u;r++){
printf("%s %d",passage[r].word,passage[r].num);
}
//这里是统计各个单词出现的个数。

}

程序有问题,但我看不出。请帮忙!谢谢~~


一分耕耘,一分收获。
2007-08-31 17:29
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 
回复:(死了都要C)我知道这题那里的````我到现在都没...

好!努力吧~~


一分耕耘,一分收获。
2007-08-31 17:44
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 
huffman是什么呀,直接告诉我吧,不要让我上百度!~~~

一分耕耘,一分收获。
2007-08-31 17:52
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 
回复:(酒肉弥勒佛)huffman编码,压缩软件用的就是这...

哦.有一定认识......谢谢


一分耕耘,一分收获。
2007-08-31 18:21
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 

我修改了一下,但仍有一点问题:
#include<stdio.h>
#include<string.h>
struct words{
char word[80];
int num;
} passage[10];


main()
{

char s[]="This is C programming text This is C text";
char a[10][80];
int i,j,k,t,r,u;
i=j=k=t=u=0;

for(i=0;i<10;i++){
passage[i].num=0;
}

i=0;
while(k<strlen(s)){
while(s[k]!=' '&&k<strlen(s)){
a[i][j]=s[k];
j++;
k++;
}

a[i][j]='\0';
i++;
k++;
j=0;
}

for(t=0;t<i;t++){
puts(a[t]);
}
printf("\n\n");
//这以上程序是将char s[]存放在数组a[10][80]中,
//其中a[i]放入一个单词。具体见论坛
//http://bbs.bc-cn.net/viewthread.php?tid=166409&star=at#

// do{
for(t=0;t<i-1;t++){
for(r=t+1;r<i;r++){
if(strcmp(a[t],a[r])==0){
strcpy(passage[u].word,a[t]);
passage[u++].num++;
}
}
}

// }while(strlen(passage[u].word)>0);

for(r=0;r<u;r++){
printf("%s %d\n",passage[r].word,passage[r].num+1);
}
//这里是统计各个单词出现的个数。

}

//程序有问题,但我看不出。请帮忙!谢谢~~


一分耕耘,一分收获。
2007-08-31 20:40
快速回复:DONE统计一篇文章中各单词出现的频率!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017177 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved