标题:单词数怎么判断
只看楼主
be板桥
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-6-4
结帖率:0
已结贴  问题点数:20 回复次数:7 
单词数怎么判断
#include <stdio.h>
#include <stdlib.h>

#define in 1
#define out 0
int main()
{
    int c,nl,nw,nc,state;
    state = out;
    nl=nw=nc=0l;
    while((c=getchar())!=EOF)
    {
        ++nc;
        if(c=='\n')
        ++nl;
        if ( c==' '|| c=='\n'|| c=='\t')
            state =out;
        else if (state=out){
            state = in;
            ++nw;
        }

    }
printf("%d %d %d\n",nl,nw,nc);
}
    这程序的单词数量怎么判断的,我不管怎么输入单词,单词的个数都是0
搜索更多相关主题的帖子: 单词 判断 include out state 
2018-06-04 16:39
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:7 
你每个变量都是做什么的
把注释写上去

做不到变量名当注释看就直接写注释

https://zh.
2018-06-04 16:43
be板桥
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-6-4
得分:0 
来源C程序设计语言的第2版(新版 )的1.5.4的单词计数
2018-06-04 16:43
be板桥
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-6-4
得分:0 
回复 2楼 lin5161678
nl是计数行数的,nw是计数单词数,nc是计数字符数,  in 和 out 是记录程序当前是否正位于一个单词中
2018-06-04 16:47
be板桥
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-6-4
得分:0 
回复 4楼 be板桥
就state这个变量
2018-06-04 16:48
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
        else if (state=out){

比较要用 ==

https://zh.
2018-06-04 16:53
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:7 
根据题意,我弄了个,你看看可以不。
程序代码:
#include "stdio.h"
#include "string.h"
int main()
{
   char string[100];
   int i=0,sum=0,flag=0;
   gets(string);
   while(string[i]!='\0')
     {
        if(flag==1 && string[i]!=' ')
          { 
            ++i;
            continue;
          }
        if(string[i]==' ')
          {
              flag=0;
               ++i;
          }
          else 
            {
              flag=1;
              sum+=1;
              ++i;
            }
     }

 printf("单词数量是: %d个。\n",sum);
}
2018-06-04 16:58
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
#include <stdio.h>
main()
{
    char string[100], s[100];
    int n,sum=0;
    gets(string);
    char *p = string;
    while (*p)
    {
        if (sscanf(p,"%s%n",s,&n) == 1)
        {
            printf("%s\n", s);
            p += n;
            ++sum;
        }
        else
            ++p;
    }
    printf("单词数量是: %d个。\n",sum);
}
2018-06-05 14:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487600-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.178483 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved