C语言的一道题 求助求助

如题所述

第1个回答  2021-11-29
一、统计输入的字符个数
同学们在学习C语言课程中,经常会遇到一道题,就是要求你写一个C程序,这个C程序能够读取你从键盘上输入的字符,并且统计其中的字符个数,最后输出总的字符个数并且把这些输入的字符再输出来。
不少同学遇到这道题没啥思路,不知该如何上手。其实需要按照分解题目、每个分解的部分对应的C语言的哪些知识点、每个分解的部分写成伪C程序代码,最后完善为一个可以编译与执行的C程序代码的步骤来。每一个C程序上机题看着难,其实不然,同学们需要掌握做题的思路,按照思路一步一步地走下去。这篇文章及后续的上机题都会教同学们思路。C程序代码不重要,重要的是思路。
二、题目分解思路
同学们在拿到一道C程序上机题时,要仔细审题,就像我们小时候写作文一样要仔细审题。通过审题,同学们要分解题目,通过分解提炼出题目中的关键点,也就是只要把这些关键点做出来,这道题也就做出来了。
关于这道题,我们仔细分解试题后可以提取出这道题的几个关键点,如下:
1、要求实现一段C程序。
2、C程序要读取你从键盘上输入的字符。
3、统计字符的个数。
4、输出字符的个数。
5、输出所有的字符。
好了,这道C程序题的关键点我们都提取出来了,下面来说说每个关键点对应的C语言知识点。
三、C语言知识点
上面提取出了5个关键点,同学们要能迅速在脑海中找到这5个关键点对应的C语言知识点,这个就需要同学们平时认真地学习C语言、打好C语言的基础了。如果不记得的话,赶紧查查书再温习温习。
这5个关键点对应的C语言知识点如下。
1、要求实现一段C程序。
但凡是C程序,总有一些固定的东西,比如该包含的头文件要包含进来,然后把main函数先写好,就像这样:
剩下的事儿不就是慢慢地填其他代码吗。
2、C程序要读取你从键盘上输入的字符。
要从键盘上读取输入的字符,同学们想想有哪些函数是可以从键盘读入字符的?这个时候你应
该能快速地想打scanf、getchar等,对吧。最起码你得想到scanf吧,这个都想不到的话赶紧再去看看书,温习温习。
这里我们先用getchar吧。
3、统计字符的个数。
既然要统计字符的个数,那么就需要一个变量吧,这个变量专门存放字符的个数的。而且字符的个数肯定是个整数对吧,又不可能是个小数。既然是整数,同学们脑海里立马就应该想到C语言中标记整数的那些类型,比如short,int,long等。这道题输入的字符数不会很多,那么这个变量的类型可以选用int。
4、输出字符的个数。
输出字符的个数,那当然就要用到输出函数了,同学们脑海里就应该立即想到有哪些输出的函数呢?最常见的肯定是printf函数了,行,我们就用printf函数吧。
5、输出所有的字符。
哎呀,还要输出所有的字符。那么同学们就要想想了,C程序里什么时候输出呢?是把所有的字符都收下来再输出还是一边收字符一边输出呢?
如果是都收下来再输出的话,那么就需要一个能够存放字符的地方,比如数组。
如果是边收边输出的话,那就无需数组了。
这里我建议采用边收边输出的方法,我留道题给同学们思考,如果采用数组的方式,会有什么问题呢?欢迎留言讨论。
好了,5个关键点对应的C语言知识点都讲到了,下面我们试着用这些C语言知识点写一段C程序的伪代码吧。
四、C程序伪代码
现在我们把上面分析到的结果用C程序伪代码写出来。伪代码就是你自己随便写,只要能帮助你自己理解就行。一个C程序伪代码如下:
{!-- PGC_COLUMN --}
五、最后生成一个完整的C程序
完成伪代码之后,我们就要对伪代码做“艺术加工”,慢慢完善它,使得它成为一个可以被编译和运行的C程序。下面我们来把伪代码变成真正的C程序代码吧。
1. 声明一个字符变量val。这个字符变量用来存储输入的每一个字符。
这句伪代码转换成正式的C程序代码不难吧,如下:
char val = ‘\0’;
这里我再次强调啊,声明一个变量的时候最好是给它一个初始值哦。
2.声明一个整型变量count,来存储字符的个数
这句伪代码转换成正式的C程序代码也不难吧,如下:
unsigned int count = 0;
由于count是专门存放字符个数的,所以它肯定是个正数,而unsigned int就表示正数的整型的意思。
3. while循环里
这段循环的C程序代码是本程序的关键部分,转换为正式的C程序代码如下:
每次使用getchar读取到一个字符后就给变量val。由于同学们输入完字符之后肯定会按下一个回车键,也就是产生了一个换行符\n,因此C程序判断变量val是换行符的话就认为输入结束了。
循环里面变量count就会自己不断地加1,同时输出读取到的字符。getchar也在不断地读取输入的字符。
5.printf函数输出字符的个数
输出字符个数很简单,如下:
printf("\n输入的字符个数为: %u", count);
这里由于count是正数,因此使用%u来输出count的值而不是%d。
C程序运行结果如下:
同学们以后在做上机题时,需要按照本文介绍的方法:题目分解、想起对应的知识点、写出伪代码、写出正式的C程序。