一个简单的单词计数程序

                        刚开始学C,所以复制了一段书上的code,是一个简单的单词技术程序,但是

编译结果不大对劲,所以上来寻求帮助,以下为code

#include

#define IN 1 /*在单词内*/
#define OUT 0 /*在单词外*/

int main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar() != EOF));
{
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT)
{
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
getchar();
}

编译结果不论怎样输入都是011,求帮助!

 while ((c = getchar()) != EOF);

这句话多了个分号,去掉就可以了

补充下,就是你的那句的括号不对,改为我的那句,再去掉分号就可以了

我感觉while循环里的if语句没有必要,nw是计算字母的数量,应该为if ('a'<=c<='z'||'A'<=c<='Z')nw++;