#随机种子#今天分享一个C语言中简单的小游戏———猜数字

srand和rand

养成习惯!先给完整代码

#include<stdio.h>
#include <stdlib.h>//rand和srand都在这里哦
#include<time.h>
void game()
{
    int number = 0;
    int random = 0;
 srand((unsigned int)time(NULL));//调用了<time.h>库中的time函数。后面会讲不要急哦
     random = rand() % 100 + 1;
         while (1)
    {
        printf("请猜数字>>");
        scanf("%d", &number);
        if (number < random){
            printf("猜小咯\n");
        }
        else if (number > random){
            printf("猜大啦\n");
        }
        else{
            printf("哎哟喂!这你都能猜到?!\n");
            break;
        }
     }
}
void menu()//游戏提示菜单
{
    printf("***************************************************************\n");
    printf("*******         1、play                2、exit         ********\n");
    printf("***************************************************************\n");

}

int main()
{ 
    int quit=0;
    do //游戏先出一步菜单,再进行选择开始游戏 or 退出游戏。
    {
        menu();
        printf("请选择>>>");
        scanf("%d", &quit);
        switch(quit)//不清楚用户输入的是什么,用多分支确定
        {
        case 2:
            printf("退出游戏。。。\n"); 
            break;
        case 1:
            printf("游戏开始:\n");
            game();
            break;
        default:
            printf("选择错误,请重新选择。\n");
            break;
        }
    } while (quit!=2);//用户不输入2退出游戏就重复进行选择 or 进行游戏
    return 0;
}

rand函数定义:(后面要记笔记哦)

int rand(void)

显而易见,rand返回一个int型的随机数

rand() 返回随机数值的范围在 0RAND_MAX 间。RAND_MAX 的范围最小是在32767(也就是一个int),0~RAND_MAX 每个数字被选中的机率是相同的。所以rand() 产生的是伪随机数字,每次执行时产生的数字是相同的; 如果要真正的不同, 需要用函数 srand() 初始化它

srand函数定义:

void srand(unsigned int seed)

srand()用来设置rand()` 产生随机数时的随机数种子,未设定随机数种子时,系统默认的随机数种子为 1。

我们可以看出,srand() 接收一个无符号整型的参数,并且这个参数一旦写固定,rand() 每次运行产生的随机数值就会一样。所以我们要实现随机数的效果的话,可以使用时间戳做参数。时间戳指的是自1970年1月1日(00:00:00 UTC)以来的秒数。函数定义是:time_t time(time_t * timer),我们把time(NULL)传进去,这样每次执行程序的时间不同,随机数种子也就不同

  int random = 0;
  srand((unsigned int)time(NULL));//记得强制类型转换一下!srand接收的是无符号整型!
      random = rand() % 100 + 1;//看到这又不懂了吧!继续往下看

要取得 [a,b) 的随机整数,使用 (rand() % (b-a))+ a;
要取得[a, b] 的随机整数,使用(rand() % (b - a + 1)) + a;
要取得(a, b] 的随机整数,使用(rand() % (b - a)) + a + 1;
要取得 a 到 b 之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
要取得 0~1 之间的浮点数,可以使用 rand() / double(RAND_MAX)
通用公式: a + rand() % n;其中的 a 是起始值,n 是整数的范围。****博主给大家搜到了详细的解释,可以点这里去看

写点总结叭:

这是我第一篇正式的博客(当然上一篇也很正式啦,只是没有技术内容),以后会继续边学习边分享自己进步的过程的,希望可以给初入计算机世界的小白们提供一点点帮助,如果有网上搜不到的问题可以找我私聊,我如果不会的话可以帮你向我的老师提问哈哈哈哈!不管环境如何变化,拥有强大的能力并且使自己不断的进步蜕变才是可以劈波斩浪,成为中流砥柱的关键(我可不是说自己是大牛,我还差的远呢)

这次写的只是一些C语言的基础,本人也仅仅是一个刚上大学没几年的大学生,菜的一批,所以欢迎各位大牛莅临指导、批评指教噢!

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.水熊虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值