作业帮 > 综合 > 作业

#include/*统计行数、单词数、字符数*/#define IN 1/*在单词内*/#define OUT 0 /*

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 07:14:33
#include
/*统计行数、单词数、字符数*/
#define IN 1/*在单词内*/
#define OUT 0 /*在单词外*/
int main(void)
{
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)
}
这段程序中有关state的看不懂,其中的else是指什么?
#include/*统计行数、单词数、字符数*/#define IN 1/*在单词内*/#define OUT 0 /*
首先 你这个程序 倒数第5行错了 应该是++nw
state其实是个状态变量 用来判断光标是否在单词内 从而检测出单词数的
if(c==' '||c=='\n'||c=='\t')
state=OUT
else if(state==OUT)
{
state=IN;
==nw;
比如这段 如果检测到空格 回车 state就赋值out 然后else 条件成立
state置1 nw加1