Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1413240
  • 博文数量: 1334
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 5762
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-25 16:56
文章分类

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

分类: C/C++

2013-02-21 04:57:56

1、程序要求:程序执行,每输入一个字符进行统计,state 变量用于统计是否在单词之中。当state由OUT改为IN表明有新单词输入,单词数目进行加一操作。

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #define IN 1
  3. #define OUT 0

  4. int main()
  5. {
  6.  int nc,nw;
  7.  int c;
  8.  nw=0;nc=0;

  9. while((c=getchar())!=EOF)
  10. {
  11.   ++nc;
  12.   if(c==' '||c==' \n'||c==\t’)
  13.   state = OUT;
  14.  
  15. else if(state=OUT)
  16. {
  17. count++;
  18. state = IN;

  19. }

  20. printf("%d %d %d","nw,nc");
  21. return 0;


  22. }
2、在理解上个例子的基础上,及理解状态state变化的思想。编写一个程序,使其以每行一个单词进行输出。
程序如下:

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #define IN 1
  3. #define OUT 0
  4. int main()
  5. {
  6.   int c;
  7.   int nw=0;
  8. while((c=getchar())!=EOF)
  9. {
  10.     if(c==' '||c=='\t'||c=='\n')
  11.   {
  12.     if(state==IN) //the end of word
  13.    {
  14.      printf("\n");
  15.      state=OUT;
  16.     }
  17.  }
  18.  else if(state==OUT)
  19. {
  20.    putchar(c);
  21.    state = IN;

  22. }
  23. else
  24.     putchar(c);


  25. }

  26. }


阅读(199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~