while循环中getchar到底是怎么运行的呢?

下面两段代码的运行结果为什么不一样?
其中第一段代码能正常统计字母的个数,而第二段代码的结果很奇怪。
第二段代码的结果是:输入s,输出1;输入ss,输出2;输入sss,输出2;
输入ssss,输出3;输入sssss,输出3......

#include<stdio.h>

int letter=0;

int main()
{
    char words;



    while((words=getchar())!='\n')
    {
        if ('a'<words<'z')
        {
            letter++;
        }


    }


    printf("字母个数:%d\n",letter);

    system("pause");
    return 0;
}

#include<stdio.h>

int letter=0;

int main()
{
    char words;



    while(words=getchar())
    {
        if ('a'<words<'z')
        {
            letter++;
        }
        if (getchar()=='\n')
        {
            break;
        }


    }


    printf("字母个数:%d\n",letter);

    system("pause");
    return 0;
}

查看全部
weixin_45472156
Leonardo||Watch
2019/08/16 12:54
  • c语言
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

2个回复