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,再见啦。