这个用来字符分类统计怎么不行呀 一直超时 是出不来循环吗 感谢大佬相助 !!c语言

问题描述:

#include <stdio.h>
int main ()
{
    int letter=0 , number=0, others=0, space=0;
    char ch;
    scanf("%c",&ch);
    while (ch != '\n'){
  
    if (ch>='a' && ch<='z' || ch>='A' && ch<='Z')
       letter++;


    else if (ch >='0' && ch <='9')
        number++;


    else if (ch == ' ')
        space++;


    else
        others++;
}
    printf("%d%d%d%d",letter , number, others, space);
    return 0;

 }
 

ch是char类型,单字符,scanf输入接收后只接收了第一个字符,下面while就会死循环

#include <stdio.h>
int main ()
{
    int letter=0 , number=0, others=0, space=0;
    char ch;
    //scanf("%c",&ch);
    while ((ch=getchar()) != '\n'){
    if (ch>='a' && ch<='z' || ch>='A' && ch<='Z')
       letter++;


    else if (ch >='0' && ch <='9')
        number++;


    else if (ch == ' ')
        space++;


    else
        others++;
}
    printf("%d,%d,%d,%d",letter , number, others, space);
    return 0;

 }