版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/localhostcom/article/details/79832598
本文主要介绍2个函数:rand()和srand();
1.rand()函数
是产生随机数的一个随机函数:
#include <stdlib.h>
int rand(void);
return value:
为一个随机数值,范围咋0至RAND_MAX之间(定义在stdlib.h,如下)
/* The largest number rand will return (same as INT_MAX). */
#define RAND_MAX 2147483647
/*******************************************
* @FileName : rand.c
* @Description : 产生1到255的随机数
* @Editor : tobiu
* @Date : 2018-04-06 13:38
********************************************/
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i = 0;
printf("[%d %s %s] rand : ",__LINE__,__FUNCTION__,__FILE__);
for(i=0;i<10;i++)
{
printf("%d ",rand()%254+1);//%254对数取余就会生成0-254的数值,+1数值就会加1,最终生成的范围是:1-255.
}
printf("\n");
return 0;
}
结果:
随机数每次生成一样的,原因:未设置seed。在调用该函数之前,必须先利用srand()设好随机数种子。如果未设置随机数种子,rand()在调用时会自动设随机数种子为1,导致生成的随机数每次运行的结果是相同的;
2.srand()函数
随机数发生器的初始化函数。
#include <stdlib.h>
void srand(unsined int seed);
seed必须是个整数,通常可以利用geypid或time(NULL)的返回值当做seed。如果每次seed都设相同值,那么rand所产生的随机数值都是一样的。
/*******************************************
* @FileName : rand.c
* @Description : 产生1到255的随机数
* @Editor : tobiu
* @Date : 2018-04-06 13:38
********************************************/
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main(void)
{
int i = 0;
srand((unsigned int)time(NULL));
printf("[%d %s %s] rand : ",__LINE__,__FUNCTION__,__FILE__);
for(i=0;i<10;i++)
{
printf("%d ",rand()%254+1);
}
printf("\n");
return 0;
}