猜数游戏
要完成一个猜数游戏,我们需要完成以下几个步骤
先展示结果
这次的编辑预处理命令中,新加入了:
#include<stdlib.h>
和
#include<time.h>
查询资料:include<stdlib.h>是standardibrary标准库头文件,stdlib头文件里包含了C、C++语言里常用的一些系统函数;include<time.h>则是调用时间函数。
理解:<stdlib.h>的作用在于引用rand()函数,而<time.h>是在第7、8行中使用时间来设定rand()函数产生的随机值。
(有错请指出)
产生数的大小是不能确定的,而猜数游戏一般限定在100以内,因此需要让生成数对一百取余来得到一个一百以内的正整数。然后我们定义一个初始值为0的变量count,使得每次循环count加一,就可以记录我们猜数的次数。
最后根据思路做步骤,完成程序。
for循环
for循环的基本形式为:for(;;){},第一个分号前为初始条件,第二个分号前为循环进行的条件,第二个分号后是每轮循环结束前要做的动作。
形如for(n=n;n<=10;n++)这样的形式时,第一、三分号前内容可省略,但分号要保留。
for循环可以这样解释:
学完了for循环的概念后,跟着课程用前面学过的知识做几个程序:
判断素数
素数的定义:只能被1和这个数本身整除的数。
因此我们使用for循环让这个数除以处于一和这个数中间的所有整数,只要存在一个数能被整除,则这个数不是素数。在每一轮循环中做a++,挨个试验数字。使用if语句,若有一个数能被整除,则使变量isPrime=0,同时使用break来跳出循环避免做过多无用的循环。
最后输出时因为数学规定了1不是素数,故使用else if 排除变量i=1时的情况。
整数逆序
输入一个数,让这个数对十取余得到个位数,记录在变量digit中,在每一轮循环中让上一轮取出来的数变大一位数(ret = ret * 10 + digit),最后舍弃取出来的这位数。
通过在不同地方输出结果,可以满足题目的不同要求,如若输入为100,在第一处注释输出为001,在最后输出为1。
输出前五十个素数
要输出前五十个素数,我们从2开始拿一个数检验一个数,看看是否为素数。
使用for循环来多次检验是否为素数,定义一个变量x,当检验为素数时,x++并输出这个数,并且循环在输出第五十个数时停止,最后使用\t可以使输出结果对齐。
//
这是一个多重嵌套的循环,输出用一角、两角、五角购买一元物品的搭配方式。
要从嵌套的循环中跳出
现在有以下两种方法
由于break是跳出当前循环,可以用很多个break形成接力,直至跳出到最外面的循环。
goto语句相当与搭建了一个传送门,从嵌套的循环中一步跳出,需要注意,goto语句不能滥用,否则会破坏函数块的结构性,造成混乱
存在的问题:1、对for语句理解不够深入,有时候难以理解多重嵌套for语句的含义。
2、对程序算法没什么研究,有时候写程序找不到思路。