在不少的地方我们都需要使用到随机数,会产生随机数还是比较有用的。
工具:
开始正文
一、使用rand()函数
C语言中,rand()函数是产生随机数的一个随机函数。rand()的使用需要注意以下几点:
#include
#include
void main()
{
printf("%d %d
", rand() % 100, rand() % 100);
运行结果:
67 41
请按任意键继续. . .
这样的rand()优缺点当然也有好处,比如rand()产生的随机序列必须是可重现的。
二、使用srand()函数
既然rand()不能真正的产生随机数,且两次运行的结果是相同的,那么就可以使用srand()函数来解决这个问题:
- 函数原型:
void srand(unsigned int seed);
srand()称为随机数生成器的初始化器,rand()在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand()根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned int seed)通过参数seed改变系统提供的种子值。
在下面的程序中,可以改变n的值来产生不同的随机数:
void main()
{
unsigned int n = 10;
srand(12);
printf("%d %d
", rand() % 100, rand() % 100);
}
三、使用time()函数
为了产生真正的“随机数”,会使用time()来产生不同的seed。将srand()、rand()、time()配合使用就可以产生随机数了。
下面的例子是随机产生10个整数,并输出最大最小值:
#include
#include
#include
int main()
{
srand((unsigned)time(NULL));
int max = 1,min = 1000;
for (int i = 0; i < 10; i++)
{
int a = 1,b = 1000;
int r = (rand() % (b - a + 1)) + a;
if (max < r) max = r;
if (min > r) min = r;
printf("%d ", r);
}
printf("
Maximum number is %d
", max);
printf("Minimum number is %d
", min);
return 0;
}