生成随机数

rand函数可以生成随机数,随机数的范围在0~RAND_MAX(32767)之间

在使用rand函数之前,需要调用srand函数,设置随机数的生成起点

srand函数:void srand (unsigned int seed);需要传入一个整数

//生成随机数
	srand();
    int ret=rand();
	printf("%d",ret);	

当我们在调用srand时,当srand的值确定后,生产的随机数就确定不变了,这一点也不随机。我们知道,一个变化的srand值可以对应不同的随机数值,而在电脑中,时间就是那个一直在变化的值。对于每个变化的时间,我们都有唯一的数字可以表示它,这个数字叫做时间戳,此时就要运用到time函数

time函数格式:time_t time(time_t* timer);

一般的,我们在使用time函数时,只需要它的返回值,不需要参数,而srand函数需要传入的数据类型是unsigned in,因此这里我们还需要进行一步强制类型转换,修改后如下:

//设置随机数生成器
	srand(unsigned int)time(NULL);       //强制类型转换

srand函数(生成随机数的起点)只需调用一次,在需要生成随机数的地方直接使用rand即可

按照题目要求,我们需要限定生成随机数的范围(1-100):将生成的随机数模100,那么生成的余数就在0-99之间,我们再在此基础上加一,就可以得到1-100的随机数了。整个生成随机数完整程序如下:

#include<stdio.h>
#include<stdlib.h>                          //使用srand函数的头文件
#include<time.h>                            //使用time函数的头文件
int main(){
    srand((unsigned int)time(NULL));        //函数格式:srand(xx)注意括号
    int ret=rand();
    int final=(ret%100)+1;
    printf(" %d ",final);                   //这里我们方便检测结果打印出随机数,实际上不打印
    return 0;
}

这样就生成了一个100以内的随机数了:

更多推荐

随机数的生成【详解】