猜数字小游戏来了~(冲冲冲!)

猜数字小游戏来了~(冲冲冲!) 动次动次小编迈着小步伐来了~我们基本了解分支与循环实战来了用分支与循环来做一款猜数字小游戏~准备好了吗发车在制作小游戏之前我们还需学习一些新的知识rand函数C语言提供了一个函数叫rand这个函数的作用是生成随机数原型如下intrand(void);rand函数会返回一个伪随机值这个随机值的范围在0~RAMD_MAX之间这个RAMD_MAX值是依赖编译器实现的基本的值都是在32767。在使用rand函数时需要包含头文件#include stdlib.h。测试rand函数代码如下#include stdio.h //使用rand函数要包含头文件 #include stdlib.h int main() { printf(%d\n, rand()); printf(%d\n, rand()); printf(%d\n, rand()); printf(%d\n, rand()); return 0; }我们在多次运行测试后不难发现它的值是固定的这与上面说的随机数出现问题了如果在深入了解我们不难发现其实rand生成的并不是一个真正意义上的随机数伪随机数并不是真正的随机数它是通过某种算法生成的随机数。真正的随机数是无法预测下一个值的而rand函数是相对一个种子的基准值生成的随机数。上述代码每次生成的随机值都是一样其实都是基于种子1生成的随机数想让它随机起来那么就让种子变化起来。srand函数C语言又提供了一个函数叫srand函数作用是用来初始化随机数的生成器srand原型如下voidsrand(unsigned int seed);程序在调用srand函数之前调用rand函数通过srand函数的参数seed来设置生成随机数的种子只要种子在变化随机数就在变化。如何让随机值变化起来呢诶~时间是不是一直在变化能不能用时间来生成呢当然可以我们接着走time函数C语言提供了一个叫time的函数用来获取时间使用time函数要包含头文件#include time.h原型如下time_ttimetime_t * timer;time函数返回的时间是当前日历的时间其返回的是1970年1月1日0时0分0秒到现在程序运行的时间差单位是秒返回类型是time_t类型的。如果time函数的参数timer返回的是非NULL的指针的话函数也会将这个返回的差值放在timer中指向内存带回去。如果time函数的参数timer返回的是NULL的话就只返回这个时间的差值time函数返回的这个差值也被叫做时间戳我们也叫它空指针如果让time函数返回时间戳写法如下timeNULL //调用函数时返回时间戳这里没有返回值生成随机数代码更改每运行一次程序屏幕上的值就都不一样啦因为是以时间作为种子在一直变化时间就是在一直变化的呀#include stdio.h #include stdlib.h #include time.h int main() { //利用时间来生成随机值 srand((unsigned int)time(NULL)); printf(%d\n, rand()); printf(%d\n, rand()); printf(%d\n, rand()); printf(%d\n, rand()); return 0; }设置随机数返回如果要生成0~99的随机数rand%100 //余数的范围是0~99生成1~100的随机数rand%1001//余数的范围是0~99加上1就是0~100生成100~200的随机数100 rand%200-1001 //余数的范围是0~99加上1就是0~100在加上100就是100~200。如果要生产a到b之间的随机数a rand%b-a1猜数字游戏实现开始正文啦开干​​#include stdio.h #include time.h #include stdlib.h //运用循环实现 //返回一个void空值 void play_game() { //定义一个整型变量叫它计数器共5次机会 int count 5; //随机数取值范围为1~100之间 int r rand()%1001; int gess 0; while(count) { printf(请输入你想猜的数字); scanf(%d, gess); //开始判断输入的数字是不是和系统定义的随机数一致 if(gess r) { printf(猜小了\n); } else if(gess r) { printf(猜大了\n); } else { printf(恭喜你猜对啦\n); //当判断输入的数字与系统的随机数一致后跳出循环不在判断 break; } //每输入一个数判断完后机会减少一次 count--; printf(你还有%d次机会\n, count); } printf(很遗憾你没猜对正确答案是%d\n, r); } //返回一个void空值 void mun() { //打印屏幕上的内容 printf(****************************\n); printf(********* 1.play *********\n); printf(********* 0.exit *********\n); printf(****************************\n); } int main() { //用时间来做随机值返回时间戳 srand((unsigned int)time(NULL)); int input 0; do { //封装函数 mun(); printf(请输入是否开始游戏按键); //输入屏幕上的数字进行判断 scanf(%d, input); switch(input) { case 1: //封装函数 play_game(); break; case 0: printf(游戏结束\n); break; default: printf(输入按键错误请重新输入\n); break; } }while(input); return 0; } ​ ​好了今天的分享就到这里啦~