c语言学生举手求教大本营老师和同学!

来源:互联网 发布:gui界面java字体大小 编辑:程序博客网 时间:2024/04/30 03:35

         这是c程序设计(第2版)第一章 1.5.4节的,题目如下:

 

       我们将介绍的第4个实用程序用于统计行数、单词数与字符数。这里对单词的定义比较宽松,它是任何其中不包含空格、制表符或换行符的字符序列。下面这段程序是UNIX系统中wc程序的骨干部分:

 

       

Code:
  1. 1    #include <stdio.h>  
  2.    2   
  3.    3    #define IN   1  /* inside a word */  
  4.    4    #define OUT  0  /* outside a word */  
  5.    5   
  6.    6    /* count lines, words, and characters in input */  
  7.    7    main()  
  8.    8    {  
  9.    9        int c, nl, nw, nc, state;  
  10.   10   
  11.   11        state = OUT;  
  12.   12        nl = nw = nc = 0;  
  13.   13        while ((c = getchar()) != EOF) {  
  14.   14            ++nc;  
  15.   15            if (c == '/n')  
  16.   16                ++nl;  
  17.   17            if (c == ' ' || c == '/n' || c = '/t')  
  18.   18                state = OUT;  
  19.   19            else if (state == OUT) {  
  20.   20                state = IN;  
  21.   21                ++nw;  
  22.   22            }  
  23.   23        }  
  24.   24        printf("%d %d %d/n", nl, nw, nc);  
  25.   25    }  

        

 

  从17行之后,我就理解不流畅,还有不懂得为什么要引入state,怎么想到引入state这个变量的,问问各位老师和同学你们当初学这程序的时候好理解吗?要是没有这个答案,我第一步要怎么去想,怎么去解决这个问题。困扰中,求救老师和同学!!

 

  

 

原创粉丝点击