C语言随机函数

1.用这俩rand(),srand() 函数要加头文件<stdlib.h>

2.用time()函数要加头文件<time.h>

int a;
a=rand(void)
//不需要参数但产生一次随机数以后,这个随机数就固定了,也就是每次打开程序都是哪一个数
//rand()会随机生成一个0~RAND_MAX之间的整数
 //RAND_MAX是<stdlib.h> 头文件中的一个宏,可以当作很大的数,用来指明rand函数返回的随机数的最大值

所以需要srand()函数重新播种,种子变化,每次产生的随机数都回变

意思是,好比你使用rand()函数

里面虽然没有参数,但你可以想象成里面是一种农作物的种子

你每次使用这个rand函数相当于播种一次这个农作物

然后产生的随机数都是这个农作物的成果---

然后你下一次还是这个种子,这样随机数还是上一次那个--毕竟种啥得啥嘛,种子也没换

这样就需要 srand 函数来换种子。

这个函数需要在rand函数前面--毕竟你得先换种子,才能播种嘛

void srand(unsigned int seed)
    //它需要一个unsigned int类型的参数
    //如果你想自己换
    void srand(n);//n为一个unsigned int类型的正整数
//表示出现的随机数不会小于n,但是这个数每次打开都是这个数
    //seed就是你自己设置的一个数,但是随机数嘛,你得让它自己换
    //这样我们就可以用到 time()函数---可以得到当前的时间(精确到秒)
//这样
    void ((unsigned)time(NULL))
        //time(NULL)-- 获取的是1970年1月1日到现在之间有多少秒
        //然后时间每时每刻都在变,所以随机数一直在变化
        (unsigned)time(NULL)//这个是强制类型转换
        //将time返回值强行转换为unsigned int(可以简写为unsigned)类型

整体用法: ​
 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    int a;//声明一个变量
    srand((unsigned)time(NULL));//随机产生个种子
    a = rand();//随机产生个随机数
    printf("%d\n", a);
    return 0;
}

生成一定范围的随机数

实际开发中,我们需要一定范围内的随机数---可以用取模(就是取余数)的方法

int a=rand()%10//产生0~9的随机数,
    //%n--就是产生0~n的随机数
    //%n+m--就是产生m~(n+m)的范围
    //例如:
    int a=rand()%21+10;
    //产生10~31的随机数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了使用C语言中的随机函数,需要进行以下几个步骤: 1. 引入头文件:首先,在程序的开头,使用#include <stdlib.h>将stdlib.h头文件引入到程序中,以便使用随机函数。 2. 设置随机数种子:在使用随机函数之前,我们需要使用srand函数设置随机数种子。随机数种子决定了随机数的起始值。一般情况下,可以使用time函数获取当前时间来作为随机数种子,确保每次运行程序时都能得到不同的随机数序列。示例代码如下: ```c srand(time(NULL)); ``` 这里的time(NULL)函数返回当前时间的秒数。 3. 获得随机数:设置好随机数种子后,可以使用rand函数来获得随机数。rand函数会生成一个范围在0到RAND_MAX之间的随机数。RAND_MAX是一个常量,表示rand函数可以生成的最大随机数。示例代码如下: ```c int randomNum = rand(); ``` 这里的randomNum变量将保存生成的随机数。 综上所述,使用C语言随机函数的用法包括引入头文件、设置随机数种子和获得随机数。通过这些步骤,我们可以在程序中生成随机数。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C语言基础教程:C语言随机函数](https://blog.csdn.net/weixin_58045538/article/details/121400387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值