为什么这样写没有按回车之后没有反应?(输入若干个整数,以 - 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;
}