求高手找这段简单程序错在哪里
要求,输入一行字符。判断出有几个字母,几个数字,几个空格,几个其他字符(谭浩强版C程序设计习题6.2)#include <stdio.h>
int main(void)
{
char c;
int e=0,k=0,s=0,q=0;
printf("请输入一行字符\n");
while(c=getchar()!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))e++;
else if(c==' ')k++;
else if(c>='0'&&c<='9')s++;
else q++;
}
printf("英文字母有%d个,空格有%d个,数字有%d个,其他字符有%d个\n",e,k,s,q);
getch();
}
以上这段程序是照书上答案写的,但是无论输入什么字符,执行下来一律认为其他字符,而且输入\n他仍然提示有其他字符2个,没有中断。
请高手指出下,是我理解错误了,还是怎么回事,答案应该不会错吧、