很多学生当问题超纲的时候就会乱猜,没有回到原点理清思路。下面就是我回答学生的一个经典问题。
一、问题代码
上面是某位同位同鞋填写的空,发同只有最后一个对了,其它都不对
二、分析
通过上面的题目我们知道
需要输入一个字符串,然后分析它的长度。
C语句一般情况下是按顺序一句一句执行的。
第5行:首先定义一个k做循环变量,len为字符串长度
第6行:定义一个足够长的字符数组来存放字符串
第7行:初始化k的值为0
第8行:接着就开始循环这个字符数组了。。。
你循环数组之前,是不是要让用户输入字符串啊!那这个while循环中肯定是让用户输入字符的。而这位同学就直接写了,所以就直接 错了,这是不对的。有什么可以在while条件中让用户输入字符呢,getchar(),注解为:
C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符 字符)。这等同于 getc 带有 stdin 作为参数。
那么while条件应该怎么写呢/p>
循环从下标0起,逐个读整个字符并k进行加1,当读到是结束字符的时候就退出循环。
那11行应该怎么填写呢。。
先不理,按正常顺序,我们得到了k之后直接把k赋值给len就行了。
再回到11行,如果非要写的话,我把k也赋值给结束是不是也可以/p>
而这位同学就直接让用户输入,明显不对,让用户输入肯定要在while循环读取字符之前。
三、最终代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!