这篇文章我简要介绍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函数的正确使用(猜数字游戏)相关推荐

  1. 【初识C语言】用C语言实现猜数字游戏

    是否会深夜突然心潮汹涌思路来袭对着电脑一顿输出,结果对着五十多个错误陷入社会的重大思考,不知从何下笔 我认为对于一个代码从无到实现某种功能时,需要有以下这几个方法: 框架思维 分块思维 及时调试 不断 ...

  2. c语言实现简单的猜数字游戏(1~100)

    猜数范围为1~100,猜大输出猜大了,猜小输出猜小了,游戏可以无限玩. 首先先做一个简单的菜单界面,只需要利用do--while循环就能实现,输入1开始游戏,输入0 退出游戏. int main() ...

  3. C语言习题:猜数字游戏(C语言随机数)

    C语言习题:猜数字游戏(C语言随机数) 需要了解C语言随机数的生成方法: 在C语言中比较常用的随机函数是 rand 函数,它可以随机的产生 0 ~ rand_max 的随机数,定义类型不同最大值也不同 ...

  4. c语言猜数字游戏用while,用C语言实现猜数字游戏

    本文实例为大家分享了C语言实现猜数字的具体代码,供大家参考,具体内容如下 问题:计算机随机生成一个数字,用户进行猜数字,当用户猜错时,提醒用户猜高/猜低,直到用户猜的数字与计算机给的随机数一致时,提示 ...

  5. 【C语言】-猜数字游戏

    目录 一.猜数字游戏 1.什么是猜数字游戏? 2.怎么实现猜数字游戏? 1>.分析需要的功能 2>.随机数的产生 3>.system()函数 4>.总代码 二.猜数字游戏+关机 ...

  6. 一个改版的猜数字游戏,超搞笑

      前言:对于设计一个游戏而言,最主要的就是框架和思路,我们在设计好没一个环节时,都要运行测试一下,有无问题:不然最后在debug,大量的bug就会让你不知所措:所以要养成一个好习惯:当设计好一个环节 ...

  7. C语言入门小游戏——猜数字游戏(详解)

    大家好,我是十一,今天给大家带来"猜数字游戏"的代码和讲解. 目录 前言 基本流程 1.打印菜单 1.1主函数逻辑 2.生成随机数 随机数生成结果 2.1srand函数 2.2时间 ...

  8. 用函数计算机玩游戏,2017年计算机等级考试二级C++辅导:随机函数rand()的猜数字游戏...

    突然遇到了随机函数的问题,那出来和大家分享一下 : srand():用此函数来获取随机数的种子,rand()来获取随机数; rand和srand的用法 首先我们要对rand&srand有个总体 ...

  9. 手把手教你使用rand函数实现猜数字游戏

    目录 rand()函数 RAND_MAX srand()函数 调用rand和srand函数 time()函数 用srand函数实现猜数字游戏 rand()函数 rand 函数返回范围为 0 到 RAN ...

最新文章

  1. C++ 和C 语言混合代码导致的问题
  2. 【青少年编程竞赛交流】11月份微信图文索引
  3. Spread for Windows Forms高级主题(7)---自定义打印的外观
  4. 编程之美-电梯调度算法方法整理
  5. MS SQL入门基础:查看表
  6. 【Matlab】到底怎么自定义colorbar/colormap的颜色?
  7. 【效率】来了!Github 终于上线收藏夹了
  8. 聚焦一切关联需求-企业数字化转型:外部驱动力之客户篇
  9. 大屏监控系统实战(5)-父工程搭建及前端相关配置
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的在线论坛管理系统
  11. 轻松提取und文件加密内容,破解X-文件锁
  12. asp.net 在repeater控件中加按钮
  13. 全国草地资源类型分布图
  14. Edge(chrome内核)浏览器Linux版本初体验
  15. 【机器学习】十大 Java 机器学习工具和库
  16. Win11蓝牙耳机已连接电脑仍外放怎么解决
  17. Qt--3D中制作坐标系(5.12)
  18. git问题:Please make sure you have the correct access rights and the repository exists.
  19. 解决二义性问题解决 java_C++中常见的两种二义性问题及其解决方式
  20. 功利性地去多读书(一年300本书)

热门文章

  1. PS创建简单的图形,染色,裁剪
  2. EntityFramwork6连接MySql错误
  3. ASCII码转16进制 十六进制转ASCII码
  4. Blake2b算法 php,BLAKE及BLAKE2算法详解
  5. 《蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践》阅读心得
  6. react native极光推送android和ios证书申请
  7. Eclipse和MyEclipse哪个更好?
  8. 机器学习系列(5)_特征工程02特征提取
  9. 【5】Maxwell轴向电机怎样调用出波形的FFT傅立叶分析图
  10. Java设计原则——迪米特法则