时间戳概念:当前计算机时间——计算机起始时间 1970.1.1.0.0.0 单位s
基于Microsoft 创建的MSDN库函数查询软件得到获取一个随机数的函数为 rand();
查询MSDN可知该函数包含在头文件<stdlib.h>中,只需调用即可实现动态的随机数生成。而单次循环的随机数生成相同,所以由于静态限制,只是在选择的过程中通过函数自行生成,本质上已经不具备随机性。
引入时间戳概念,强调时间的变动性。但是由于受时间影响,随机数的生成具备一定的规律,在短时间多频率的运行状况下,随机数生成并不具备随机性。
利用srand()function 对这个rand()设置初始值。利用一个随机数对随机数函数rand设置初始值。可以选择time()时间函数对rand设置初始值 srand((unsigned)time(NULL));通过对time采用强制类型转换 使得返回值为int类型从而对rand设置初值。
具体实现代码如下
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> void menu()//创建游戏菜单栏 { printf("#######################\n"); printf("###1.play 0.exit###\n"); printf("#######################\n"); } void game() { int ret = 0; int i = 0; srand((unsigned int)time(NULL));//利用时间戳设置生成随机数初始值 ret = rand();//生成随机数 printf("%d\n", ret);//打印随机生成数 if (i < ret) { printf("猜错了比它小\n"); } else if (i > ret) { printf("猜错了比它大\n"); } else { printf("猜对了\n"); break; } } int main() { int input = 0; do { menu(); printf("选择开始>>"); scanf("%d", &input); switch (input)//判断游戏开始条件 { case 1: game();//游戏界面 break; case 0: printf("退出当前游戏"\n); break; default://默认未输出其它选项则自动跳出 break; } } while (input)//再次游戏 return 0; }