1.游戏要求
1.电脑随机生成1到100的随机数。
2.玩家猜数字,猜数字过程中,根据猜测数字的大小给出猜大或者猜小的结果反馈,直到猜对,游戏结束。
2.随机数生成
C语言提供了一个函数叫rand,这个函数可以生成随机数,函数原型如下:
该函数会返回一个伪随机数,这个随机数的生成范围实在0到RAND_MAX之间,RAND_MAX的大小是依赖编译器上实现的,但是大部分编译器上是32767。
rand函数的使用需要包括头文件:stdlib.h。
第一次运行:
第二次运行:
由此可见两次的运行结果是一样的,所以我们得到的不是真正意义上的随机数。那是因为rand函数是对一个叫“种子”的基准值进行运算生成的随机数,又因为默认种子是1,所以这两次运算的结果是一样的,如果想要生成不同的随机数,就要让种子是变化的。
这时候我们引进来一个新的函数叫srand,他是用来初始化随机数的生成器,srand的原型如下:
程序在调用rand函数前先调用srand函数,通过srand函数的参数seed来设置rand函数生成随机数的时候的种子,只要种子在变化,每次生成的随机数就在变化。
那也就是说给srand的种子如果是随机的,rand就能生成随机数;在生成随机数的同时又需要一个随机数 ,那这就矛盾了。
在程序中我们一般是使用程序运行的时间作为种子的,因为时间时刻在发生变化的。
在C语言中有个函数叫time,就可以获得这个时间,time函数的原型如下:
具体就不介绍了,直接上代码:
OK,现在随机数的生成我们已经解决,那我们要生成1到100之间的随机数我们该如何去做那;
rand%100; 余数的范围是0到99;
rand%100 + 1 ;范围是1到100;
3.代码的实现