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 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了