栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C程序设计语言(第二版):练习1-8

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C程序设计语言(第二版):练习1-8

题目:编写一个统计空格、制表符与换行符个数的程序

自我解答:

include 

int main()
{
   int c;
   double numSpace = 0.0, numTab = 0.0, numLF = 0.0;
   while((c = getchar()) != EOF)
   {
      if(c == ' ')
         numSpace++;
      else if(c == 't')
         numTab++;
      else if(c == 'n')
         numLF++;
   }
   printf("number of space: %.0fn", numSpace);
   printf("number of Table: %.0fn", numTab);
   printf("number of line feed(LF): %.0fn", numLF);
}

运行结果:

当输入文本为(用t替代tab,用n代表一个换行符):

sdftn
dftn
123 45n

number of space: 1
number of Table: 2
number of line feed(LF): 3

参考答案:

#include 


int main()
{
	int c, nb, nt, nl;
	
	nb = 0;
	nt = 0;
	nl = 0;
	while((c = getchar()) != EOF)
	{
		if(c == ' ')
			++nb;
		if(c == 't')
			++nt;
		if(c == 'n')
			++nl;
	}
	printf("%d %d %dn", nb, nt, nl);  
   return 0;
}

整形变量nb nt和nl分别用来统计空格、制表符和换行符的个数。这三个变量的初值都为0.

在while循环的循环体内,出现在输入中的每一个空格、制表符和换行符都将被记录。while循环中的3条if语句在每次循环中都将被执行。如果程序读到的字符不是空格、制表符或换行符,就不执行任何操作。如果程序读到的字符是这三个符号之一,就对相应的计数器加1.当while循环终止(即getchar返回EOF)时,本程序将把空格、制表符和换行符的统计结果打印出来。

 对if-else语句的介绍最早出现于教材第14页,下面是使用了这一语法结构的实现方式:

#include 


int main()
{
	int c, nb, nt, nl;
	
	nb = 0;
	nt = 0;
	nl = 0;
	while((c = getchar()) != EOF)
	{
		if(c == ' ')
			++nb;
		else if(c == 't')
			++nt;
		else if(c == 'n')
			++nl;
	}
	printf("%d %d %dn", nb, nt, nl);  
   return 0;
}

补充:

实现上没有本质不同,参考答案中仍然保持了“有注释”、“变量定义和初始化分开”和“变量定义简洁”几个特点,这是需要借鉴的地方。当然参考答案在打印时并没有清晰的指出数值的具体含义。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号