【C语言】随机设定目标数字

        继之前的C语言一系列文章之后,博主又进行了深耕,接下来我们就要进行C语言进阶的一些相关知识。关注博主不迷路!

一、rand函数:生成随机数

        这个函数生成的随机数是 int 型的整数。在所有编程环境中其最小值都为0,但最大值则取决于编程环境,所以我们用<stdlib.h>头文件将其定义成一个名为RAND_MAX的对象宏(obiect-likemacro),其定义的示例如下所示:

        #define RAND_MAX   32767     /*定义的示例:值根据编疆环境而有所差别,RAND_MAX的值根据规定不得低于32767*/

二、srand函数:设置用于生成随机数的种子

        rand 函数是对一个叫作“种子”的基准值加以运算来生成随机数的。之所以先前每次运行程序都会生成同一个随机数序列,是因为 rand 函数的默认种子是常量1。要生成不同的随机数序列,就必须改变种子的值。 

        比如,假设我们调用了 srand(50)。这样一来,之后调用的 rand 函数就会利用设定的新种子值50来生成随机数。 

        rand 函数生成的是叫作伪随机数的随机数。伪随机数看起来像随机数,却是基于某种规律生成的。因为能预测接下来会生成什么数值,所以才叫作伪随机数。真正的随机数是无法预测接下来会生成什么数值的。

我们一般使用的方法是把运行程序时的时间当作种子 。

#include<time.h>
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
    int retry;      /*再运行一次?*/
    srand(time(NULL));    /*根据当前时间设定随机数的种子*/
    printf("在这个编程环境中能够生成0~%d的随机数。\n",RAND_MAX);
    do{
        printf("\n生成了随机数%d。\n",rand());
        printf("再运行一次?···(0)否(1)是:");
        scanf("%d",&retry);
    }while (retry==1);
    return 0;
}

三、随机设定目标数字 

         rand函数生成的值范围是0~RAND_MAX话虽如此,但我们需要的随机数不会每次都恰好在这个范围内。
        一般情况下,我们需要的是某个特定范围内的随机数。如果我们需要“大于等于0且小于等于10”的随机数,可以像下面这样求出:

                rand()%11                  \*生成大于等于0且小于等于10的随机数*\

        这里使用的方法是把非负整数值除以 11,就得到余项(余数)为0,1...,10

大家注意不要把非负整数值错除以10。用10除得到的余数是0,1,,9,无法生成10。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr_star_galaxy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值