kkk0123123 2014-11-26 15:29 采纳率: 0%
浏览 2449

单词统计问题 C或C++解决

[题目描述]统计若干行英文中单词的个数和每个单词出现的次数。 [输入]若干行英语。 [输出]单词数量及每个单词出现的次数。

  • 写回答

7条回答 默认 最新

  • threenewbee 2014-11-26 15:49
    关注

    #include
    #include
    struct word
    {
    char c[30];
    int n;
    }w[10000];

    main()
    {
    FILE *fp;
    char b[30],ch;
    int i=0,m=1,j=0,k=0,t=0,flag=0;
    fp=fopen("d://a.txt","r+");
    while((ch=fgetc(fp))!=EOF)
    {
    if('A'<=ch&&ch<='Z') ch=ch+32;

    if('a'<=ch && ch<='z')
    {b[i]=ch;i++;flag=1;}
    else
    {
    if(ch=='-'&&(ch=fgetc(fp))=='\n')
    {
    flag=0;
    }

    else
    {
    if(flag==1)
    { b[i]='\0';i=0;flag=0;m=0;
    for(j=0;j<k;j++)
    {
    if(strcmp(b,w[j].c)==0)
    {m=1;break;}
    }
    if(m) w[j].n++;
    else
    {w[k].n=1;strcpy(w[k].c,b);k++;}
    }
    }

    if('A'<=ch && ch<='Z') ch+=32;
    if('a'<=ch && ch<='z')
    {b[i]=ch;i++;flag=1;}
    }
    }
    // printf("%d\n",k);
    for(i=0;i printf("\n");
    for(i=0;i {
    t=0;
    while(w[t].n==0) t++;
    for(j=1;j {
    if(w[j].n>w[t].n) t=j;
    else
    if(w[j].n==w[t].n)
    {
    if(strcmp(w[j].c,w[t].c)<0)
    t=j;
    }
    }
    printf("%s %d\n",w[t].c,w[t].n);
    w[t].n=0;
    }
    return 0;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料