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;
    }

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型