多重循环、缓冲区管理、数组(day06)

无法预知的数字叫随机数
rand标准函数可以用来获得随机数
为了使用这个标准函数需要包含stdlib.h头文件

srand标准函数用来设置随机数种子
这个函数把一个整数作为种子使用
不同的种子产生的随机数不同
为了使用这个标准函数也需要包含stdlib.h头
   文件

time标准函数可以用来获得当前时间
这个函数用一个整数表示当前的时间
同一秒之内这个用来代表时间的整数是同一个
为了使用这个标准函数需要包含time.h头文件

任何程序只需要设置一次随机数种子

分支和循环都可以让程序中的语句不再从上到下
    顺序执行,它们都叫做流程控制语句

goto也是流程控制语句
goto语句可以把任何一条语句指定成下一条
    语句
一般不要使用goto语句

如果一个问题可以用多组数字的变化过程描述,
    并且不同数字的变化频率不同就可以采用
    多重循环结构解决。
编写多重循环的时候外部循环变量应该用来代表
   变化慢的数字,内部循环变量应该用来代表
   变化快的数字

while关键字也可以用来编写循环
不适合采用for关键字编写的循环再考虑
    用while关键字编写
while循环格式如下
while (逻辑表达式) {
    反复执行的语句
}
反复执行大括号里面的语句直到逻辑表达式
    结果为假

while循环会交替执行逻辑表达式的计算和大括号
   里面的语句

while循环第一步计算逻辑表达式的结果

当逻辑表达式为假的时候循环结束

while循环有可能不执行大括号里面的语句

while循环的逻辑表达式如果永远为真(比如1)
    就成为死循环

while循环里也可以使用break;和continue;语句

do...while关键字也可以用来编写循环
do...while循环格式如下
do {
    反复执行的语句
} while (逻辑表达式);
do...while循环小括号后面必须用分号结束
do...while循环也会交替执行逻辑表达式的
    计算和大括号里面的语句
do...while循环第一步执行大括号里面的语句
do...while循环可以保证大括号里面的语句
    至少执行一次

scanf函数获得数字的时候数字首先从键盘
    进入输入缓冲区,然后从输入缓冲区
    进入程序的存储区
先进入输入缓冲区的数字必须先处理,前面
    的数字没有处理完就不能处理后面的数字
如果用户输入的格式和程序里要求的格式不
    一样就无法处理以后用户输入的数字

可以使用如下两条语句把用户某一次输入的
   所有内容都从输入缓冲区里丢掉
scanf("%*[^\n]");
scanf("%*c");

printf函数显示数字的时候首先把数字放在
    输出缓冲区里然后再显示在屏幕上
输出缓冲区里的内容在以下四种情况下才会
    出现在屏幕上
1.如果输出缓冲区里包含'\n'换行字符则
    换行字符前面的内容会显示在屏幕上
2.程序结束后它放在输出缓冲区里的内容会
     显示在屏幕上
3.当输出缓冲区被充满的时候它里面的内容
     会显示在屏幕上
4.使用fflush(stdout)语句可以强制把输出
     缓冲区里的内容显示在屏幕上

数组用来代表内存里一组连续的同类型存储区
这些存储区叫做数组的元素
数组也需要先声明然后才能使用
声明数组时也需要提供类型名称和数组命令,
    另外还需要提供一个整数用来表示数组里
    的存储区个数
数组一旦存在则里面存储区的个数就不可以
    改变了
数组通常不会作为整体使用,一般一次只
    使用其中的某个存储区
数组里每个存储区有一个编号,这个编号
     叫做下标
有效下标范围从0开始到存储区个数减一为止,
    超过范围的下标不能使用
使用数组名称和下标就可以表示数组里的某个
    存储区

可以使用for循环依次处理数组里的每个存储区
在这个for循环里循环变量依次代表每个有效
    下标

数组也应该初始化
初始化数组的时候可以提供多个初始化数据,
   它们应该写在一对大括号中间,相邻数据
   之间用逗号分开
如果初始化数据的个数比存储区的个数多
   就忽略后面的初始化数据
如果初始化数据的个数比存储区的个数少
   就把后面的存储区初始化成0
如果初始化数据个数和存储区个数一样就可以
    省略数组声明里的存储区个数

 

posted @ 2017-10-26 09:03  Kernel001  阅读(299)  评论(0编辑  收藏  举报