c和c++中time , srand, rand 函数的使用

首先,对于三函数之间有着千丝万缕的联系。

       1.对于rand函数类型模式

int rand(void);

//即rand函数里没有参数,返回一个整形数值

      注意:rand函数返回值的范围:0到RAND_MAX,即在0到32767之间

rand函数在头文件<stdlib.h>中

       2.对于srand函数类型模式

void srand (unsigned int seed)

//初始化随机数生成器,没有返回类型,参数是无符号整形数值,将此作为随机数种子

      注意:srand函数的参数内的数值作为产生随机数的种子,种子不同,则产生的随机数不同,种子相同,产生的随机数相同

srand函数在头文件<stdlib.h>中

        3.对于time函数类型的模型

time_t time (time_t* timer)

//time_t 等效于长整型long long长长整形,而参数为指针型

      注意:time函数返回一个时间戳,而时间戳有是每分每秒都在改变,用time函数可以作为随机数种子,常用time(0)或者time(NULL)

time函数在头文件<time.h>中

三者函数之间的使用

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int a;
    for (int i = 0; i < 3; i++)
    {
        //srand此为产生随机数种子的函数,若不用此函数,默认种子为1,即每次产生的随机数都一样
        //srand(i);//在此使用时,rand在循环中每次会产生不一样的数,但在每次启动程序时,产生的数值都一样
        //srand(time(NULL));//用时间戳,每次程序启动时都会产生不一样的数值,但在循环中都产生一样的数值
        //srand(5);//在此使用时,种子都是5,即每行产生的随机数也是一样的
        for (int j = 0; j < 3; j++)
        {
            //srand(5);//种子相同,都是5,则每个产生的随机数相同
            a = rand();//即,若随机数种子相同,则产生的随机数相同,种子不同,随机数不同
            printf("%d ", a);
        }
        puts("");
    }
//从以上可得出,在rand函数中,若有一个种子,在一个程序中每次会产生不同的数值,但每次程序启动时都是相同的数值
    return 0;
}

例:用三个函数产生一个1到100的数

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    srand(time(NULL));//若不是用此函数,则每次运行程序后会产生一样的数
    int random_num = rand() % 100 + 1;//取模100,得到的是0-99,加一后则产生1—100的数
    printf("%d\n", random_num);
    return 0;
}

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值