黑马程序员技术交流社区

标题: 为什么最后一位输入空格的话就会统计多一个单词呢?应该怎么改…… [打印本页]

作者: 嗨灬小凯    时间: 2015-4-30 15:46
标题: 为什么最后一位输入空格的话就会统计多一个单词呢?应该怎么改……
目的是统计输入的单词数
#include<stdio.h>
int main(void)
{
    int count,word;
    char ch;
    count=word=0;
    do{
        ch=getchar();
        if(ch==' ')word=0;
        else if(word==0){
            word=1;
            count++;
        }
            
    }while(ch!='\n');


    printf("总共有%d个单词。\n",count);
//为什么最后一位输入空格的话就会统计多一个单词呢?应该怎么改……
    return 0;
}
作者: qingying5810    时间: 2015-4-30 18:56
#include<stdio.h>
int main()
{
    int count,word;
    char ch;
    count=0;
    word=0;

    do{
        ch=getchar();
        if(ch==' ')
         word=0;
        else if(word==0&&ch!='\n'){
            word=1;
            count++;
            
        }

    }while(ch!='\n');
   
   
    printf("总共有%d个单词。\n",count);
    //为什么最后一位输入空格的话就会统计多一个单词呢?应该怎么改……
    return 0;
}


作者: LLLX77    时间: 2015-4-30 19:23
用while重写,别用do while循环




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2