sadliu


私信TA

用户名:dotcpp0628815

访问量:332

签 名:

清醒 自律 知进退 明得失

等  级
排  名 4791
经  验 1569
参赛次数 0
文章发表 15
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

舞台再大,你不上台,永远是个观众;平台再好,你不参与,永远是个局外人。能力再大,你不行动,只能看着别人成功!

#include"stdio.h"
int main()
{
    char ch;
    int state = 0;   // state为电平状态值,0为低电平,1为高电平
    int words = 0;   // words为单词数  
     while( ~scanf("%c",&ch) ) {   
        if( (ch != ' ') && (state == 0) ) 
        {   
            words += 1;   //单词数加一              
            state =  1;   //状态变为高电平             
        }       //往后的标记为高电平,并等待低电平(等待一个空格),结束一个脉冲信号
        if( ch == ' ' )   //出现低电平(即出现空格),state变为低电平,此步骤同时避免了单词之间出现多个空格的情况
            state=0;
        //if( ch == '\n' )break;
    }
    printf("%d\n", words);
    return 0;
}
//采用的上升沿计数该方法需要人肉编译,理解起来就很顺畅。直接考虑到了句首有空格的情况、句中有多个空格的情况和末尾有空格的情况,一个字 牛


 

0.0分

0 人评分

  评论区