猜数字游戏中,最关键的一步在于随机数的产生。而产生随机数,需要时间戳来实现。c语言提供了一个time函数,返回一个时间戳,可以用于产生随机数。返回时间戳,需要引用一个头文件#include <time.h>,使得随机数组能不断变化。利用时间戳,再引用头文件#include <stdlib.h>开始生成随机数组,即srand(time())。由于()中需要的是unsigned int 变量,需要强制转换;并且time()得到的指针不想存起来,需在()内填NULL即可。最终表现为srand((unsinged int)time(NULL))。

大体思路及过程如下:

/*
猜数字游戏怎么实现
RAND_MAX
#include <stdlib.h>
rand 函数返回的随机数的范围是 (0~32767)

时间戳
c语言提供了一个time函数,返回一个时间戳
#include<time.h>
time_t*(timer)
//time_t一个t,如果不想存起来,用NULL代替*(timer)作空指针
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void menu()
{
    printf("*******************\n");
    printf("****** 1.play *****\n");
    printf("****** 0.exit *****\n");
    printf("*******************\n");
}

void game()
{
    int guess = 0;
    //1.生成一个随机数
    int ret = rand()%100+1;  //从那组随机数中抽随机数(1~100)
    //printf("%d\n", ret);

//2.猜数字 
    while (1)
    {
        printf("猜数字:>\n");
        scanf("%d", &guess);
        if (guess < ret)
        {
            printf("猜小了!\n");
        }
        else if (guess > ret)
        {
            printf("猜大了!\n");
        }
        else
        {
            printf("恭喜你!猜对了!\n");
            break;
        }   //输入0即可停止
    }
}

int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));   //产生一组随机数,srand需要一个unsigned int
    //之所以将srand放入主函数,而不放入game,是为了防止频繁调用它,导致随机数在相近时间太过接近

do
    {
        menu();
        printf("请选择:>");
        scanf("%d", &input);
        switch (input)
        {
            case 1:
                game();
                break;
            case 0:
                printf("退出游戏\n");
                break;
            default:
                printf("选择错误,重新选择!\n");
                break;
        }
    }while (input);   //输入0时为假,不再运行
        return 0;
}

关于猜数字中随机数的产生相关推荐

  1. c++-猜数字,随机数的生成

    #include <iostream> #include <ctime> using namespace std;int main7() {srand((unsigned in ...

  2. JavaScript实现猜数字游戏(猜一位和四位数字)

    一.猜1-10中的数字 实现效果:程序随机生成一个1~10之间的数字,用户输入所猜数字(1~10以内),系统判断这两个数字的大小.如果用户没有输入数字,则提示"出错啦!!!",如果 ...

  3. 判断和循环(实战收尾篇2—猜数字游戏)

    讲完循环和判断我们就可以上游戏啦!兴奋吧,激动吧,直接进入正题,来看! 在进入猜数字游戏之前,先让我们看一下模拟登录(后面用于游戏登录) 目录 1.模拟登录 2.猜数字 1.模拟登录 //模拟登录#p ...

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

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

  5. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)

    题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...

  6. 第17天学习Java的笔记(匿名对象,随机数,猜数字小游戏)

    33天! 匿名对象 package Demo1701;public class Person {String name;public void showName() {System.out.print ...

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

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

  8. 用二分法编写猜数字游戏(含:猜电脑随机数,和用户自己想的数字)python

    目录 #什么是二分法 #用二分法猜电脑随机数 #用二分法猜用户所想的数 1.什么是二分法? 对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点 ...

  9. Java猜数字游戏(实现0~9的随机数猜数字游戏,数值范围可以自行更改,内容仅供参考)

    import就是在java文件开头的地方,先说明会用到那些类别.以下文本中用到了随机数Random和键入数据用到的Scanner. import java.util.Random;//引入Random ...

最新文章

  1. ASP.NET实现数据图表
  2. 免费!这里有一份开发者进阶“宝典”求带走
  3. 下一代防火墙的5个优点
  4. Spring Boot中使用LDAP来统一管理用户信息
  5. buildroot mysql
  6. 基于模型的嵌入式开发流程_如何使用基于模型的测试来改善工作流程
  7. python 三维图片 任意切片_python实现对任意大小图片均匀切割的示例
  8. 日志打印,设置开关类【编程技巧】
  9. [RK3399]移植工具i2c-tools
  10. 面试常见简单编程题目
  11. mac分区数据恢复|mac分区后数据丢失怎么恢复?
  12. 独特性,就是你最好的竞争力
  13. springboot聚合工程打包报错Compilation failure浅析
  14. linux中如何开启vnc服务端口,Linux下vnc配置及启动
  15. GD32F303固件库开发(16)----移植兆易创新SPI Nor Flash之GD25Q64Flash
  16. LTE学习笔记--PHY--TM模式
  17. Stream使用技巧(1)------数据处理技巧
  18. 如何撰写PRD(一)
  19. python语言使用不需要付费不存在商业风险_python+-中国大学mooc-题库零氪
  20. 16章编程题-C语言程序设计:现代方法(第2版)课后答案

热门文章

  1. 电赛专题 | E题-互联网的信号传输
  2. toString方法和String方法
  3. 交叉验证(Cross-Validation)
  4. 重定向与重定位的理解
  5. sqlserver 2017 还原遇到报错The operating system returned the error ‘21(设备未就绪。)‘
  6. Python —— 列表的while循环遍历 、for循环遍历
  7. APS系统如何选型?(下)
  8. 暑期项目实训——08
  9. docker个人容器云(基于阿里云)
  10. Mysql解决中文乱码