大侠 看过来

Ysan521 2012-07-16 03:56:03
要求统计一篇英语文章中,出现次数最高的100个单词,并显示出来

文章可能10M 20M甚至更大
...全文
110 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ysan521 2012-07-16
  • 打赏
  • 举报
回复
嗯 好的 现在去学一下
我这个程序出错在哪了呢?
[Quote=引用 3 楼 的回复:]

单步调试和设断点调试是程序员必须掌握的技能之一。
[/Quote]
Ysan521 2012-07-16
  • 打赏
  • 举报
回复
其实这个代码 我还没有调试出来 就是想问一下大家 程序出错在哪了。。。。。15小的话 可以设置大一点啊[Quote=引用 8 楼 的回复:]

我想说加入一个单词不止15的字母组成怎么办

引用 1 楼 的回复:

#include<stdio.h>
#include<stdlib.h>
#include"string.h"

typedef struct LNode /*定义链表结点类型*/
{
char data[15];
struct LNode *next;
long flag;
}LNode, ……
[/Quote]
ganmaojiushijiu 2012-07-16
  • 打赏
  • 举报
回复
我想说加入一个单词不止15的字母组成怎么办

[Quote=引用 1 楼 的回复:]

#include<stdio.h>
#include<stdlib.h>
#include"string.h"

typedef struct LNode /*定义链表结点类型*/
{
char data[15];
struct LNode *next;
long flag;
}LNode, *LinkList;

typedef struct
{
char ……
[/Quote]
IVERS0N 2012-07-16
  • 打赏
  • 举报
回复
STL的MAP简单点
csdmdsc 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

STL 的multimap ,短短几行代码就可以解决
[/Quote]简单明了。
LAST_MAN 2012-07-16
  • 打赏
  • 举报
回复
STL 的multimap ,短短几行代码就可以解决
qixing1115 2012-07-16
  • 打赏
  • 举报
回复
分三步走:
第一步:计算每个单词出现次数
第二步:求最大的100个数
第三步:显示出来
OVER
赵4老师 2012-07-16
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
Ysan521 2012-07-16
  • 打赏
  • 举报
回复
运行没有错误 怎么不能出现结果啊 神马原因啊、、、
Ysan521 2012-07-16
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
#include"string.h"

typedef struct LNode /*定义链表结点类型*/
{
char data[15];
struct LNode *next;
long flag;
}LNode, *LinkList;

typedef struct
{
char value[15];
long count;
} show;


int main()
{
// 读入一个txt.文件操作
FILE *fpRead;

int i=0;
int l,m,n=0;
char ch;
char word[15]={0};
show Result[100];


LNode *head=(LNode*)malloc(sizeof(LNode));
head->next=NULL;
LNode *p=head;
LNode *s;
LNode *q=head;



if((fpRead=fopen("D:\\tt.txt","r"))==NULL)
{
printf("\n打开文件失败");
getchar();
exit(1);
}

while ((ch=fgetc(fpRead))!=EOF)
{
ch=fgetc(fpRead); //逐个获取的字符
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
word[i++]=ch;
}
else if (i>0)
{
word[i] = '\0';

while(p->next!=NULL) // 链表遍历,比较链表中的节点值与当前单词
{
if(strcmp(p->data,word)==0)
{
p->flag++;
break;
}
p=p->next;

}
// 如果链表中没有当前单词,在链表头插入节点
if (p== NULL)
{
s=(LNode *)malloc(sizeof(LNode));//申请结点存储空间

strcpy(s->data,word);//给节点数据域赋值
s->flag=1;//
s->next=head->next;//给节点指针域赋值
head->next=s;
}
i=0;
}
}
fclose(fpRead); // 对文件进行操作,关闭文件

// 读取链表,输出单词及其出现的个数

for(l=0;l<100;l++)//初始化前100个数组
{
strcpy(Result[l].value,q->data);
Result[l].count=q->flag;
q=q->next;
};

while((q->next)!=NULL)//将链表中剩余的插入数组中
{
for(m=0;m<100;m++)
{
if(Result[m].count<q->flag)
{
strcpy(Result[m].value,q->data);
Result[m].count=q->flag;
}
};
q=q->next;
}

for(n=0;n<100;n++)
{
printf("次数:%d",Result[n].count);
printf("单词:%s",Result[n].value);
}



return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧