不会写code 2022-09-26 23:52 采纳率: 76.5%
浏览 83
已结题

C语言阅读txt文件并计算单词数量

编写一个函数在终端中用 ./a.out <data.txt 阅读txt文件
其中data.txt文件为
My
name
is
iKun
And
my
favorite
sport
is
basketball
and
if
you
love
me
you
should
become
IKUN

统计一共有多少个不同的单词(大小写算不同的单词)
同时统计出现频率最多的单词是多少次,并且打印出这个单词(如果有多组,那么都打印出来)

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-09-27 00:11
    关注
    #include <stdio.h>
    #include <string.h>
    
    #define MAX_WORD_LENGTH 60
    #define MAX_WORD_NUM 200
    
    char words[MAX_WORD_NUM][MAX_WORD_LENGTH] = {0};
    int count[MAX_WORD_NUM] = {0};
    
    int main() {
      int n = 0, max = 0;
      char word[MAX_WORD_LENGTH];
      while (scanf("%s", word) == 1) {
        int i = 0;
        while (i < n && strcmp(words[i], word) != 0)
          i++;
        if (i == n) {
          strcpy(words[i], word);
          n++;
        }
        count[i]++;
        if (count[i] > max)
          max = count[i];
      }
      printf("Total number of different words: %d\n", n);
      printf("Max Freq: %d\n", max);
      for (int i = 0; i < n; i++) {
        if (count[i] == max)
          printf("%s\n", words[i]);
      }
      return 0;
    }
    
    $ gcc -Wall main.c
    $ ./a.out < data.txt
    Total number of different words: 17
    Max Freq: 2
    is
    you
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月26日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题