【发布时间】:2018-06-04 20:41:07
【问题描述】:
我指的是学习 C 的 K&R。我没有得到以下代码所需的输出。
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int c,nl,nw,nc, state;
nl = nc = nw = 0;
state = OUT;
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", nc, nw,nl);
}
我给出了以下输入
the
door is
open
我得到的输出是
17 1 0
请告诉我代码有什么问题。
【问题讨论】:
-
你尝试调试了吗?
-
'(c=getchar()!= EOF)' --> '(c=getchar())!= EOF'
-
启用编译器警告,gcc 上
-Wall -Wextra,clang 上-Weverything或VS 上/Wall(cl.exe) 并且在编译之前不接受代码警告。 -
但是你没有说程序应该做什么。
标签: c word-count