| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1048 人关注过本帖
标题:#include<stdio.h>
只看楼主 加入收藏
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:9 
#include<stdio.h>
#include<stdio.h>
#define IN 1
#define OUT 0
main()
{
    int c,nl,nw,nc,state;
    state=OUT;
    nl=nw=nc=0;
    while(c=getchar()!=EOF){
        ++nc;
        if(c=='\n')
            ++nl;
        if(c=='\n'||c=='\t'||c==' ')
            state=OUT;
        else if(state==OUT){
            state=IN;
            ++nw;
        }
    }
    printf("%d%d%d\n",nl,nw,nc);
}
这是个统计字符数 行数 单词数的  我大概思路有 大多看明白了
state=OUT;
        else if(state==OUT){
            state=IN;
            ++nw;
这不是很明白
搜索更多相关主题的帖子: 单词 统计 include 
2012-02-12 05:43
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:5 
我大概看了一下。
应该要判断是否为一个单词的话
qwe ert e t
这里就有4个单词。
要判断是否为单词。
不可能真的出把所有单词遍历一遍,所以他判断是否为单词为
是否 空格 是否 有\t 或者\n

state 2中状态判断。

用心做一件事情就这么简单
2012-02-12 06:36
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
收藏
得分:0 
#include<stdio.h>
#define IN 1
#define OUT 0
main()
{
    int c,nl,nw,nc,state;
    state=OUT;
    nl=nw=nc=0;
    while(c=getchar()!=EOF){
        ++nc;
        if(c=='\n')
            ++nl;
        else if((c!='\n'&&c!='\t'&&c!=' ')&&(state=OUT)){
            state=IN;
            ++nw;
        }
    }
    printf("%d%d%d\n",nl,nw,nc);
}
我自己想这样写 感觉不对 但是不知道错在哪
2012-02-12 07:12
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
收藏
得分:0 
先谢谢二楼 第一次发帖子
2012-02-12 07:13
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:0 
if((c!='\n'&&c!='\t'&&c!=' ')&&(state=OUT))中=是赋值不是判断
2012-02-12 11:51
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:5 
if(c=='\n')
            ++nl;
        else if((c!='\n'&&c!='\t'&&c!=' ')&&(state=OUT)){
            state=IN;
            ++nw;
        }
判断单词个数有两点,一是空格,二是'\n';你的输入中如果有空格由于&&c!=' '的存在,++nw是不会执行的。
2012-02-12 12:00
zxd675816777
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:252
专家分:631
注 册:2012-2-3
收藏
得分:0 
楼主不妨也可以尝试调用下#include<ctype.h>里面的一些函数比如isalpha()等,也能达到统计单词数的要求

数学好难!
2012-02-12 23:56
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:5 
看了一下,这个代码功能还挺多的嘛~~
#include<stdio.h>
#define IN 1
#define OUT 0
main()
{
    int c,nl,nw,nc,state;
    state=OUT;
    nl=nw=nc=0;
    while(c=getchar()!=EOF){
        ++nc;     /*统计字符数*/
        if(c=='\n')
            ++nl;   /*统计行数*/

        if(c=='\n'||c=='\t'||c==' ')   /*
            state=OUT;
        else if(state==OUT){
            state=IN;
            ++nw;      统计单词数 */     新单词的出现特征就是前一个为空格,后一个检测为有效字符 .  
        }                                state表示前一个输出是否为字符,初始化为空格,当c为单词字符时,通过state状态环回检测单词数.
    }                                    就相当于一排字符中,哪里有空格,表示新单词开始了.连续空格算一个空格—— \t.

算法,数据结构,windows核心编程.
2012-02-13 00:52
han8716
Rank: 1
等 级:新手上路
帖 子:76
专家分:3
注 册:2012-2-12
收藏
得分:0 
谢谢大家 现在明白了 很感激
2012-02-13 01:27
转角有梦在等
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:31
专家分:95
注 册:2012-2-4
收藏
得分:5 
代码少,功能多啊

一起努力,,,  QQ:7325231
2012-02-13 06:11
快速回复:#include<stdio.h>
数据加载中...
 
   



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

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