1、程序要求:程序执行,每输入一个字符进行统计,state 变量用于统计是否在单词之中。当state由OUT改为IN表明有新单词输入,单词数目进行加一操作。 #include <stdio.h> #define IN 1 #define OUT 0 int main() { int nc,nw; int c; nw=0;nc=0; while((c=getchar())!=EOF) { ++nc; if(c==' '||c==' \n'||c=='\t‘) state = OUT; else if(state=OUT) { count++; state = IN; } printf(“%d %d %d”,“nw,nc”); return 0; } 2、在理解上个例子的基础上,及理解状态state变化的思想。编写一个程序,使其以每行一个单词进行输出。 程序如下: #include<stdio.h> #define IN 1 #define OUT 0 int main() { int c; int nw=0; while((c=getchar())!=EOF) { if(c==' '||c=='\t'||c=='\n’) { if(state==IN) //the end of word { printf(“\n”); state=OUT; } } else if(state==OUT) { putchar(c); state = IN; } else putchar(c); } } |