「已注销」 2022-10-13 20:55 采纳率: 100%
浏览 45
已结题

想用c实现记录字符个数,但不知道为什么陷入死循环。请各位看看。

想用c实现记录字符个数,但不知道为什么陷入死循环。请各位看看。
#include<stdio.h>
int main() {
    printf("请输入字符:");
    int a = 0, b = 0, d = 0,e=0;//a储存字母数,b储存数字数,d储存空格数,e储存其他字符数。
    char c = getchar();//录入字符
    while (c != '\n')//循环条件:若读取到回车则跳出。
    {
        if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
        {
            a++;
            printf("字母数为%d\n", a);
        }
        else if (c >= '0' && c <= '9')
        {
            b++;
            printf("数字为%d\n", b);
                }
        else if(c==' ')
        {
            d++;
        }
        else
        {
            e++;
            printf("其他字符数为%d\n", e);
        }
    }
    return 0;
}

img

  • 写回答

1条回答 默认 最新

  • X-道至简 2022-10-13 20:57
    关注

    char c = getchar(); 这句要写到while循环里面, 不然只读了一次就一直循序了,不会再读入条件永远为真

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 10月13日