写一个程序,分析一个文本文件中各个词出现的频率,并把频率最高的10个词打印出来

#include "stdafx.h"
#include
typedef struct Word {
 char w[20];
 int  k;
 struct Word *next;
}pWord;
int main(int argc, char* argv[])
{
FILE *fp = fopen("test.txt","r");
 struct Word *Head = NULL;
 while (!feof(fp)) {
  char *p = (char *)malloc(20*sizeof(char));
  fscanf(fp, "%s", p);
  if(Head == NULL){
   struct Word *temp = (struct Word *)malloc(sizeof(struct Word));
   strcpy(temp->w, p);
   temp->k = 1;
   temp->next = NULL;
   Head = temp;
  } else {
   struct Word *pp = Head;
   while (pp != NULL) {
    if (stricmp( pp->w, p) == 0){
     ++pp->k;
     break;
    } else {
     pp = pp->next;
    }
   }
   if (pp == NULL){
    struct Word *temp = (struct Word *)malloc(sizeof(struct Word));
    strcpy(temp->w, p);
    temp->k = 1;
    temp->next = Head;
    Head = temp;
   }
  }
 }
 struct Word *q = Head;
 int flag=0;
 while (q != NULL) {
if(flag==10)break;
  printf("%s    ", q->w);
  printf("%d\n", q->k);
  q = q->next;
  flag++;
 }
return 0;
}

你可能感兴趣的:(写一个程序,分析一个文本文件中各个词出现的频率,并把频率最高的10个词打印出来)