`

《c程序设计语言》练习1-12

阅读更多

c程序设计语言练习1-12:编写一个程序,以每行一个单词的形式打印其输入。

此处单词是指除空格,TAB键,换行字符和文件结束符号(EOF)之外的其他字符。
我的代码如下:
而《the c answer book》中的代码如下:

 

   1. #include 《stdio.h>  
   2.   
   3. #define IN 1  
   4. #define OUT 0  
   5.   
   6. /* print input one word perl line*/  
   7. main()  
   8. {  
   9.   int c,state;  
  10.     
  11.   state = OUT;  
  12.   while((c = getchar()) !=EOF){  
  13.     if(c == ' '||c == '\n' || c == '\t'){  
  14.        if(state == IN){  
  15.          putchar('\n');  
  16.          state = OUT;  
  17.        }  
  18.     } else if (state == OUT){  
  19.         state = IN;  
  20.          putchar(c);  
  21.     }else  
  22.          putchar(c);  
  23.     }  
  24. }  
 


这个程序能够解决这个习题,但是整个程序看起来却有点冗余(毕竟这本书是1988年出版的)。因为最后的两种情况完全可以合并。
所以另一个网站 给出的答案如下:

   1. #include <stdio.h>  
   2. int main(void)  
   3. {  
   4.   int c;  
   5.   int inspace;  
   6.   
   7.   inspace = 0;  
   8.   while((c = getchar()) != EOF)  
   9.   {  
  10.     if(c == ' ' || c == '\t' || c == '\n')  
  11.     {  
  12.       if(inspace == 0)  
  13.       {  
  14.         inspace = 1;  
  15.         putchar('\n');  
  16.       }  
  17.       /* else, don't print anything */  
  18.     }  
  19.     else  
  20.     {  
  21.       inspace = 0;  
  22.       putchar(c);  
  23.     }  
  24.   }  
  25.   return 0;  
  26. }  
 

 

这样看起来好一些,但是还显得不够简练,不过c程序设计语言中给出的程序(课本1.5.4单词计数的程序,跟这个程序以及习题1-9其实都是同一类问题)简练。这个程序虽然表面上看起来很简单,但是以我的笨脑子,最先想到的是找个字符数组来存储每个单词并将之输出。后来仔细想了想,直接用putchar就可以了。这个算法根据前一个字符和当前字符的值(每个值都可能是空白字符或者单词字符)分成四种情况。而根据其值的特殊性有些情况下是不需要做任何操作,所以可以合并成两种情况就可以了,这样看起来逻辑也更清晰一些。
我写的代码如下:

   1. #include <stdio.h>  
   2.   
   3. #define TRUE 1  
   4. #define FALSE 0  
   5.   
   6. int main()  
   7. {  
   8.   int c; /* a character variable */  
   9.   int b; /* a bool variable whose value is TRUE or FALSE  
  10.       which indicates current character is in a word or out of a word*/  
  11.   
  12.   b = FALSE;  
  13.   while( (c = getchar()) != EOF)  
  14.     if( c != ' ' && c != '\t' && c != '\n')  
  15.       {  
  16.         putchar(c);  
  17.         b = TRUE;  
  18.       }  
  19.     else if(b == TRUE)  
  20.       {  
  21.         printf("\n");  
  22.         b = FALSE;  
  23.       }  
  24.   return 0;  
  25. }  
分享到:
评论

相关推荐

    C语言程序设计练习题--程序填空.doc

    C语言程序设计练习题--程序填空.doc

    《C语言程序设计》说课--课件PPT.rar

    对于C语言,经典教材如《C程序设计语言》是必不可少的,同时,利用在线平台如LeetCode、Codecademy等进行实践训练也是提升编程能力的有效途径。此外,提供丰富的编程实例和项目案例,有助于学生理论联系实际,巩固所...

    (完整版)C语言程序设计课后习题1-8参考答案.doc

    【C语言程序设计课后习题1-8参考答案】涉及的知识点主要涵盖计算机基础知识和C语言编程: 1. **冯·诺依曼计算机模型**: 冯·诺依曼计算机模型是现代计算机的基本架构,包括五大组成部分: - **运算器(ALU)**...

    C程序设计语言(第2版·新版)习题解答.pdf

    《C程序设计语言(第2版·新版)习题解答》一书是对K&R所著的《C程序设计语言(第2版新版)》中所有练习题的详细解答。该书旨在帮助学习者深入理解C语言,并提升其编程技能。作为C语言的经典教材,K&R原著详细介绍了...

    C语言程序设计(chinapub)

    china-pub产品,高清,C语言是目前流行的通用程序设计语言,是许多计算机专业人员和计算机的爱好者学习程序设计语言的首选。 本书共10章,分别介绍了C语言的算法基础、基本概念和如何利用C语言进行程序设计。通过...

    C语言程序设计-黄维通-电子教案

    《C语言程序设计》是黄维通教授编著的一本经典教材,被广泛用于清华大学计算机基础教育课程中。这本书深入浅出地介绍了C语言的基本概念、语法和编程技巧,旨在帮助初学者掌握这一强大而灵活的编程语言。通过学习本书...

    C程序设计语言(K&R)清晰中文版.pdf

    《C程序设计语言(K&R)清晰中文版》是一本系统全面介绍C语言编程的经典教材,适合初学者和有一定基础的程序员阅读。通过本书的学习,可以掌握C语言的核心概念和技术要点,为进一步深入学习打下坚实的基础。

    《C语言程序设计》书面练习册

    在C语言程序设计的学习过程中,书面练习册是帮助学习者巩固理论知识、提升编程技能的重要工具。通过对《C语言程序设计》书面练习册内容的分析,我们可以提炼出如下知识点: 首先,C语言基础知识是学习该语言的起点...

    C程序设计语言pdf及练习答案

    总之,《C程序设计语言》及其习题解答是C语言学习者的宝贵资源。通过阅读和实践,读者不仅可以掌握C语言的基本语法,还能培养解决问题和设计程序的能力。对于希望深入理解计算机工作原理或从事系统级编程的人来说,...

    C语言程序设计习题答案---谭浩强

    《C语言程序设计习题答案——谭浩强》是一份专为学习谭浩强教授编写的C语言教材的读者准备的参考资料。这份资料包含了谭浩强版C语言教材中的大量课后习题的答案,旨在帮助读者检验自己的学习成果,理解和掌握C语言的...

    C程序设计语言第2版新版习题解答

    《C程序设计语言第2版新版习题解答》(原书第2版)是对Brian W.Kernighan和Dennis M.Ritchie所著的《C程序设计语言(第2版·新版)》所有练习题的解答,是极佳的编程实战辅导书。K&R的著作是C语言方面的经典教材,而这...

    c语言程序设计试题及答案-C语言程序设计的试题及答案共12

    【描述】中的"C语言程序设计的试题及答案共12页.pdf.zip"表明这是一个包含12页C语言编程试题及其对应解答的PDF文档,已被压缩存储。PDF格式通常用于保持文档的原始布局和格式不变,便于阅读和打印。ZIP是一种常见的...

    C语言--程序设计导论 C语言--程序设计导论

    《C语言--程序设计导论》这本书是初学者学习C语言的理想教材,旨在帮助读者掌握C语言的基础知识和编程技巧。 1. **基本概念与语法** - 变量:C语言中的数据存储单元,包括整型、浮点型、字符型等类型。 - 常量...

    C语言程序的设计基础.pdf

    1. 程序设计语言的基本概念: - 程序:一组按照特定规则组织的指令集合,用于解决特定问题。 - 程序设计语言:用于编写计算机程序的语言,如C、Python、Java等。 - 常用程序设计语言及其类型:分为编译型和解释型...

    C语言程序设计课程实验报告 -汇总1

    **C语言程序设计课程实验报告 汇总1** C语言是计算机科学中基础且重要的编程语言之一,它被广泛用于系统开发、软件构建以及教学领域。本实验报告旨在通过一系列实践操作,使学习者深入理解和掌握C语言的基础概念、...

    C语言程序设计(第四版)习题答案.pdf

    《C语言程序设计(第四版)》是一本深入学习C语言的经典教材,书中涵盖了C语言的基础知识、程序设计方法以及算法等内容。以下是根据书中的章节和习题解析的知识点总结: 1. **C语言基础** - **计算机程序**:是按照...

    C语言程序设计-谭浩强-第五章习题答案

    在本资源中,我们关注的是谭浩强编著的《C语言程序设计》一书的第五章习题解答。这是一本经典的C语言教材,对于初学者和有一定基础的学习者来说,都具有很高的参考价值。谭浩强教授以其深入浅出的讲解方式,帮助读者...

    《C语言程序设计实用教程》-电子教案.rar

    《C语言程序设计实用教程》是一本广泛应用于教学和自学的C语言教材,该资源以电子教案的形式提供,便于教师授课或学生自主学习。电子教案通常包含课程大纲、讲义、习题解答、实例演示等内容,是提升教学效果的重要...

Global site tag (gtag.js) - Google Analytics