srand、rand、time函数的正确使用(猜数字游戏)
这篇文章我简要介绍srand、rand、time函数的使用,并用他们一起来完成一个猜数字游戏
目录
一、随机数产生函数
1、rand函数,
2、srand函数,
3、time函数,
二、猜数字游戏
1.游戏菜单:
2.游戏进入、退出程序
3、完成游戏运行本体(game函数的实现)
一、随机数产生函数
1、rand函数,
他就是我们今天用来生成随机数的重要嘉宾,这个函数接受一个种子,就可以根据这个种子产生一系列用算法实现的随机数;
2、srand函数,
这个函数就是为rand函数提供种子的函数,他们两个要一起使用,我们可以在srand函数中放置一个数,这样rand函数就可以根据种子产生随机数了,比如我们给个100,srand(100);这样我们就可以得到一系列由100计算得来的随机数了;
3、time函数,
rand函数确实是产生了随机数,但是这个种子是固定的,所以rand函数产生的数每次都是一样的,但是同样的计算结果,我们只需让种子每次不一样就够了,于是,我们就可以将时间放到srand函数中种子的位置;例如这样:srand((unsigned int )time(NULL))。至于为什么这么写大家可以去看看我的上一篇博客,里面对这三个函数的使用都有了更详细的介绍;
二、猜数字游戏
我们将猜数字游戏分为几个部分
1.游戏菜单。
2.游戏进入、退出程序
3.完成游戏运行本体(game函数的实现)
1.游戏菜单:
这样一个简单的游戏菜单就做好了,
2.游戏进入、退出程序
我们可以设置一个while循环,可以让用户不停进行游戏,直到用户想退出游戏,这样,我们可以配合选择结构,来让用于输入不同的值,进行不同的程序;
int main()
{int num;int guess;printf ("这是一个猜数字游戏 ,你可以选择以下选项:\n\n"); do{mean(); //打印菜单printf ("请输入你的数:\n");scanf ("%d",&guess); //用来接受用户命令,变量guess switch (guess){case 1: game();break; //输入1,游戏开始 case 0: printf ("游戏退出成功:\n");break; //输入0,退出程序 default : printf ("\n\n请输入正确的数:\n");break; //输入不是选单中的数,让用户重新选择 }}while (guess);//直到用户输入的guess值是0,停止循环 return 0;}
3、完成游戏运行本体(game函数的实现)
因为我们要使用time、rand、srand函数,所以要引相对应的头文件<time.h>和<stdlib.h>。
设置一个while循环,将rand函数生成的数定在范围1—100中间,并且根据用户输入的值判断大于、小于、等于rand函数生成的值,大于则提示用户输入过大,小于则提示输入过小,等于则恭喜用户猜对,并且输入用户猜了多少次,再结束game函数,退到主函数的循环程序中,继续循环,直至用户输入0退出程序;
我们将在程序运行阶段就利用time函数产生一个数作为srand的值,使rand函数每次开始的种子不同,产生的值不用,让rand产生的值更加随机。
下面来具体实现game函数
void game (){int input; //用户输入的数字int count=0; //统计用户输入次数srand ((unsigned int)time(NULL));//种子生成int num1=rand()%100+1; //随机数num1,范围是1——100printf ("游戏开始,请输入一个数:\n");while (1){scanf ("%d",&input); //用户输入数字if (input>num1) //猜大的提示{count ++;printf ("猜大了\n");}else if (num1>input) //猜小的提示{count++;printf ("猜小了\n") ;}else //猜对之后的鼓励{printf ("*******恭喜您终于猜对了*****\n\n"); printf ("您一共猜了%d次,\n\n\n",++count);for (int j=0;j<count;j++)printf (",good good good\n");printf ("\n\n\n");break;}}
好的 ,接下来我们将在程序运行阶段就利用time函数产生一个数作为srand的值,使rand函数每次开始的种子不同,产生的值不同,让rand产生的值更加随机。(为什么将srand放在主程序调用一次rand函数产生的值就更随机这件事,如果还不理解可以去看看我的上篇博客,里面有更详细的模拟介绍)
并且将3个函数关联起来使用,则可以得到猜数字游戏简化版,代码如下:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>void mean()
{printf ("******************************\n");printf ("*****1:游戏开始 0:退出游戏\n");printf ("******************************\n");
}
void game (){int input; //用户输入的数字int count=0; //统计用户输入次数int num1=rand()%100+1; //随机数num1,范围是1——100printf ("游戏开始,请输入一个数:\n");while (1){scanf ("%d",&input); //用户输入数字if (input>num1) //猜大的提示{count ++;printf ("猜大了\n");}else if (num1>input) //猜小的提示{count++;printf ("猜小了\n") ;}else //猜对之后的鼓励{printf ("*******恭喜您终于猜对了*****\n\n"); printf ("您一共猜了%d次,\n\n\n",++count);for (int j=0;j<count;j++)printf (",good good good\n");printf ("\n\n\n");break;}}int main()
{srand ((unsigned int)time(NULL));//种子生成int num;int guess;printf ("这是一个猜数字游戏 ,你可以选择以下选项:\n\n"); do{mean(); //菜单的打印 printf ("请输入你的数:\n");scanf ("%d",&guess); //用来接受用户命令,guess switch (guess){case 1: game();break; //输入1,游戏开始 case 0: printf ("游戏退出成功:\n");break; //输入0,退出程序 default : printf ("\n\n请输入正确的数:\n");break; //输入不是选单中的数,让用户重新选择 }}while (guess);//直到用户输入的guess值是0,停止循环 return 0;}
以上就是本篇文章的全部内容了,希望大家希望,大家一起学习C语言,一起努力,冲冲冲。
srand、rand、time函数的正确使用(猜数字游戏)相关推荐
- 【初识C语言】用C语言实现猜数字游戏
是否会深夜突然心潮汹涌思路来袭对着电脑一顿输出,结果对着五十多个错误陷入社会的重大思考,不知从何下笔 我认为对于一个代码从无到实现某种功能时,需要有以下这几个方法: 框架思维 分块思维 及时调试 不断 ...
- c语言实现简单的猜数字游戏(1~100)
猜数范围为1~100,猜大输出猜大了,猜小输出猜小了,游戏可以无限玩. 首先先做一个简单的菜单界面,只需要利用do--while循环就能实现,输入1开始游戏,输入0 退出游戏. int main() ...
- C语言习题:猜数字游戏(C语言随机数)
C语言习题:猜数字游戏(C语言随机数) 需要了解C语言随机数的生成方法: 在C语言中比较常用的随机函数是 rand 函数,它可以随机的产生 0 ~ rand_max 的随机数,定义类型不同最大值也不同 ...
- c语言猜数字游戏用while,用C语言实现猜数字游戏
本文实例为大家分享了C语言实现猜数字的具体代码,供大家参考,具体内容如下 问题:计算机随机生成一个数字,用户进行猜数字,当用户猜错时,提醒用户猜高/猜低,直到用户猜的数字与计算机给的随机数一致时,提示 ...
- 【C语言】-猜数字游戏
目录 一.猜数字游戏 1.什么是猜数字游戏? 2.怎么实现猜数字游戏? 1>.分析需要的功能 2>.随机数的产生 3>.system()函数 4>.总代码 二.猜数字游戏+关机 ...
- 一个改版的猜数字游戏,超搞笑
前言:对于设计一个游戏而言,最主要的就是框架和思路,我们在设计好没一个环节时,都要运行测试一下,有无问题:不然最后在debug,大量的bug就会让你不知所措:所以要养成一个好习惯:当设计好一个环节 ...
- C语言入门小游戏——猜数字游戏(详解)
大家好,我是十一,今天给大家带来"猜数字游戏"的代码和讲解. 目录 前言 基本流程 1.打印菜单 1.1主函数逻辑 2.生成随机数 随机数生成结果 2.1srand函数 2.2时间 ...
- 用函数计算机玩游戏,2017年计算机等级考试二级C++辅导:随机函数rand()的猜数字游戏...
突然遇到了随机函数的问题,那出来和大家分享一下 : srand():用此函数来获取随机数的种子,rand()来获取随机数; rand和srand的用法 首先我们要对rand&srand有个总体 ...
- 手把手教你使用rand函数实现猜数字游戏
目录 rand()函数 RAND_MAX srand()函数 调用rand和srand函数 time()函数 用srand函数实现猜数字游戏 rand()函数 rand 函数返回范围为 0 到 RAN ...
最新文章
- C++ 和C 语言混合代码导致的问题
- 【青少年编程竞赛交流】11月份微信图文索引
- Spread for Windows Forms高级主题(7)---自定义打印的外观
- 编程之美-电梯调度算法方法整理
- MS SQL入门基础:查看表
- 【Matlab】到底怎么自定义colorbar/colormap的颜色?
- 【效率】来了!Github 终于上线收藏夹了
- 聚焦一切关联需求-企业数字化转型:外部驱动力之客户篇
- 大屏监控系统实战(5)-父工程搭建及前端相关配置
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线论坛管理系统
- 轻松提取und文件加密内容,破解X-文件锁
- asp.net 在repeater控件中加按钮
- 全国草地资源类型分布图
- Edge(chrome内核)浏览器Linux版本初体验
- 【机器学习】十大 Java 机器学习工具和库
- Win11蓝牙耳机已连接电脑仍外放怎么解决
- Qt--3D中制作坐标系(5.12)
- git问题:Please make sure you have the correct access rights and the repository exists.
- 解决二义性问题解决 java_C++中常见的两种二义性问题及其解决方式
- 功利性地去多读书(一年300本书)