为了使后续猜数字游戏更加精彩好玩,先介绍一下如何通过代码控制电脑自动关机:
其中要用到的几个库函数是system()和strcmp()
(1)system()是Windows下提供的系统函数,用时要引头文件#include<windows.h>
(2)strcmp()用于两个字符串的比较,字符串之间比较相等不能用关系运算符“==”,必须strcmp()
"shutdown -s -t 60":系统60秒关机命令,可更改数字自行设置秒数
"shutdown -a":解除系统关机命令
上代码:
以上代码是利用简单的循环结构实现,程序运行起来电脑提示关机,创建数组存放用户输入的字符串,while循环里判断用户输入是否符合要求,若符合就取消关机跳出循环,否则循环继续。
1.随机数的生成
1.1 rand
C语言提供了一个函数rand()用来生成随机数,rand()生成的随机数在0-32767之间
rand函数要包含头文件stdlib.h
其实在调用的时候会发现不管rand()调用多少次,产生的随机数每次都一样,这是为什么?
因为rand()生成的随机数并不是真实随机数,而是用某种算法生成的伪随机数。rand之所以能生成随机数是对一个叫“种子”的基准值进行运算生成的,这个“种子”默认值为1,如不加改变每次调用都是1就会造成随机数都一样。
1.2 srand
C语言又提供了srand()函数来初始化随机数的生成器(rand是生成随机数,在生成之前要先初始化)
以下是srand函数的返回值和参数,只要参数是随机值,生成的随机数也就是随机值
1.3 time
刚刚说到srand需要一个随机值,其实只要一个可变的数就行了,因为数值一直在变,生成的随机数自然不同;那么我们可以想到电脑上的时间就是一个时刻在发生变换的值。
C语言中也有一个叫time()的函数可以获取到系统时间,time函数会返回一个时间戳,是1970年1⽉1⽇0时0分0秒到现在程序运行时间的差值。
time()的返回类型是time_t类型,实际上是个整型,要包含头文件time.h,而它的参数是个指针类型,若不需要传值,置为NULL
time_t time(NULL)作为srand的参数,srand规定参数类型是unsigned int,所以将time的类型强转为unsigned int,再因为time_t类型,实际上也是个整型所以类型转换不会精度丢失。
全剧终