关于#c语言#的问题:分别统计正整数、负整数和0的个数,结束标记不算在内)#include <stdio.h>

为什么这样写没有按回车之后没有反应?(输入若干个整数,以 - 32767作为结束标志,分别统计正整数、负整数和0的个数,结束标记不算在内)

#include
int main()
{
    int num;
    int high=0;
    int zero=0;
    int low=0;
    while ((num = getchar()) != -32767)
    {

        if (num > 0)
            high++;
        else if (num == 0)
            zero++;
        else if (num == -32767)
            break;
        else
            low++;
    }
        printf("%d %d %d", high, low, zero);
    return 0;
}

应该getchar返回的是一个字符,应该用scanf函数,程序做如下修改:

#include<stdio.h>
int main()
{
    int num;
    int high=0;
    int zero=0;
    int low=0;
    while (1)
    {
        scanf("%d",&num);
        if (num > 0)
            high++;
        else if (num == 0)
            zero++;
        else if (num == -32767)
            break;
        else
            low++;
    }
        printf("%d %d %d", high, low, zero);
    return 0;
}