随机数生成器
随机数生成器能随机生成0~RAND_MAX之间的整型数,包括0和RAND_MAX。RAND_MAX是一个符号常量,定义在库cstdlib中,它的值与编译器有关。
rand()是生成随机数的函数,每次调用它都会随机生成一个0~RAND_MAX的整数。
基于哨兵的循环
根据某个条件成立与否来决定是否继续的循环称为基于哨兵的循环。这个条件就是哨兵。基于哨兵的循环语句有while和do_while。
弦截法求方程f(x)=0在某个异号区间[a,b]的一个实根。
程序设计:
(1)令x1=a,x2=b
(2)连接(x1,f(x1)),(x2,f(x2))的弦与横轴的交点(x,0)
(3)若f(x)与f(x1)同号则方程的根在(x,x2)之间,将x作为新的x1,否则将x设为新的x2。
(4)重复(2)(3),直到f(x)小于某个指定的精度为止。
更好地解决循环中途推出问题
基于标志的循环:
读入一个值;
while(读入的值与标识志不等){
执行需要执行的语句;
读入下一个值;}```
读入语句出现了两次,如果读入语句很多复杂就造成了大量代码的重复。
解决方案是使用break语句:
while(ture){
读入数据;
if(value==标志值) break;
执行需要执行的语句;```
变量的存储类别
1.自动变量
自动变量是指函数调用时自动分配空间,函数调用结束后自动回收空间的一类变量。自动变量用auto声明,如定义的变量不专门声明为其他存储类型,都是自动变量。我们使用的变量大多是自动变量。
2.静态变量
静态变量用static声明。
(1)静态全局变量。
不希望多个源文件共享一个全局变量时可以将全局变量定义为静态的,表示该全局变量是当前源文件所私有的。
(2)静态局部变量
当静态局部变量所在的函数结束调用时,该变量不会消亡。在下一次调用函数时也不会对这个变量重新分配空间,而是使用原空间的值。
3.寄存器变量
寄存器变量用register声明。
寄存器变量就是存储在cpu的存储器中的变量,减少变量的存取时间。寄存器变量只能是局部的自动变量。
将某个变量设为寄存器变量只是表达了程序员的一种意向,如果系统中没有合适的寄存器,编译器就将它设为自动变量。
4.外部变量
外部变量用extern声明。
外部变量一定是全局变量。如果在全局变量定义之前或者其他源文件想使用该全局变量,就可以将这个变量使用extern声明。