#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=OUTels

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/18 05:24:48

#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=OUTels
#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 /*在单词外*/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=OUTels
首先 你这个程序 倒数第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