开始学习c语言的旅程哈哈。
1.只产生随机数不需要其范围
头部包含头文件stdlib.h,使用rand()函数返回一个随机数。随机数范围在0-RAND_MAX之间(RAND_MAX为stdlib.h中定义的整数与系统有关)
注:在stdlib.h头文件中函数定义为int rand();所以rand()函数返回的随机数为整型,生成浮点类型可以对生成的随机数进行运算得到。例如rand()/100生成两位小数点的随机浮点数,或者rand()/(double)RAND_MAX生成0-1的随机浮点数
2.产生在一定范围内的随机数
可以在宏定义中定义random(int number)函数,#define random(x) (rand()%x),再在main函数中调用random()函数。实质与直接对rand()%x进行操作赋值生成随机数一致,定义random()函数方便。
注:rand()%x生成的随机数范围为[0,x)
写了个简单的程序进行运用,代码如下:
#include
#include
#define random(x)(rand()%x)
int main()
{
int i;
printf("产生不定范围的随机数:\n");
for(i=0;i<5;i++)
{
printf("%d\n",rand());
}
printf("产生一定范围内的随机数:\n");
printf("%d\n",random(10));
return 0;
}
运行两次发现产生的随机数一致。
需要先调用srand()函数设置随机数的种子,如果未调用默认随机数种子为1,所以产生了上个代码运行多次产生随机数一致的情况。
srand()函数在stdlib.h中定义为void srand(unsigned int seed),seed可以用getpid()(返回进程标识符)或者用time(NULL)(返回的是系统时间).
明天继续学习