| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4107 人关注过本帖
标题:DONE统计一篇文章中各单词出现的频率!
只看楼主 加入收藏
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
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
我知道这题那里的````我到现在都没做出来````因为当时想了好久都没想出来```跳过它了 `
今天又看到```
回寝室继续想``


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-08-31 17:42
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 
回复:(死了都要C)我知道这题那里的````我到现在都没...

好!努力吧~~


一分耕耘,一分收获。
2007-08-31 17:44
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
哈哈,这很像我考四级时的那题上机题~~~~~~

这题做出来,你四级上机题就应该没问题了!!!

偶学编程,也许本身就是一个错。。。
2007-08-31 17:47
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
也可以挑战下huffman

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-08-31 17:48
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 
huffman是什么呀,直接告诉我吧,不要让我上百度!~~~

一分耕耘,一分收获。
2007-08-31 17:52
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
huffman编码,压缩软件用的就是这个原理,根据二叉树的方式,找到相同字母的个数,然后将最多出现的数减少他的禁止,最少出现的数,加长他的进制,以达到他压缩,释放空间的作用

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-08-31 17:58
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 
回复:(酒肉弥勒佛)huffman编码,压缩软件用的就是这...

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


一分耕耘,一分收获。
2007-08-31 18:21
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 
不知道,雨燕这题排序用什么排序,内排序还是外排序
如果是文件很大,就要外排序
如果内存很小,也要外排序
而外排序比较难些
现在好多外排序也在寻求效率
不知雨燕对该的看法
请教中

You have lots more to work on! Never give up!c language!
2007-08-31 19:25
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.036440 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved