介绍

在编写C语言程序时,随机数是常用的一个功能。C语言中可以使用rand()和srand()函数来生成随机数,同时还可以使用time()函数来产生随机种子。本文将介绍C语言中如何生成随机数。

使用rand()和srand()函数

在C语言中,rand()函数可以产生一个伪随机数,因此在使用rand()函数之前,需要使用srand()函数来初始化随机数发生器。srand()函数的参数可以是任意整数,通常使用当前时间作为参数,以确保每次程序运行时都会有不同的随机数序列。

生成随机数的方法如下:

srand((unsigned)time(NULL)); //初始化
int random_number = rand() % n; //生成[0,n-1]的随机数

上述代码中,time(NULL)函数返回当前秒数,并将其转换为一个非负整数,在使用srand()函数时,需要将其强制转换为unsigned类型。

在生成随机数时,使用rand() % n可以得到[0,n-1]范围内随机数。如果想生成[a,b]范围内的随机数,可以使用以下代码:

int random_number = rand() % (b-a+1) + a;

利用time()函数产生随机种子

如果每次使用srand()函数时,都传入的是同样的参数,则每次程序运行时都会得到相同的随机数序列。因此,需要使用不同的参数来初始化随机数发生器。在不想手动指定随机种子时,可以使用time()函数生成随机数种子。

生成随机数种子的方法如下:

srand((unsigned)time(NULL));

在上述代码中,time(NULL)函数返回当前秒数,并将其转换为一个非负整数,作为随机数种子传入srand()函数中。

总结

C语言提供了rand()和srand()函数来产生随机数,在使用时需要将随机数种子作为参数传入srand()函数中,通常可以使用当前时间来初始化随机数发生器。同时,在生成随机数时,可以使用rand() % n来获取[0,n-1]范围内的随机数。

希望本文对你学习C语言生成随机数有所帮助。