1.例题

题目:<mark>随机</mark>产生15个<mark>互不重复</mark>的介于0~19之间的随机整数存入<mark>数组</mark>中。

2.详细解析

(1).随机数种子

  c语言的头文件:#include <time.h>

  c++语言的头文件:#include < ctime >,两者用其中之一即可。

<mark>srand((unsigned)time(NULL))</mark>

(这叫<mark>time函数</mark>,time函数可以获取当前的系统时间,但获取的是秒数,ctime可将其转化为常规的时间)

(2).伪随机数

<mark>rand() % 20</mark>:随机产生20个数,系统来完成。记住20表示产生数的范围,从0开始,到19结束。
如:rand() % 30+1:表示产生从0到30的伪随机数

为什么说它是伪随机数呢?
因为你运行几次后会发现,它们产生的结果是一样的。


所以就需要随机数种子了,它会根据时间产生不同的起始值。每一刻的时间是不同的,于是起始值就不会相同,这样的随机数就是真正的随机数了!

(3).代码

#include <iostream>
#include <time.h> //随机数头文件
using namespace std;

int main()
{
   
    int i, j, x;
    int a[15];
    srand((unsigned)time(NULL));   //随机数种子
        
    for (i = 0; i < 15; i++)
    {
   
        x = rand() % 20;           //产生0到19的随机数
        for (j = 0; j < i; j++)
            while (x == a[j])      //如果x与前面的数相同,则再找一个数
            {
   
                x = rand() % 20;
                j = 0;
            }
        a[i] = x;
    }
       
    for (i = 0; i < 15; i++)      //输出
    {
   
        cout << a[i] << " ";
    }
}

最后想说的是,这是我的<mark>C++练习系列</mark>的第三篇文章,喜欢的话希望可以点一下赞,并关注我的上两篇文章,ok,再见啦。