srand 函数要包含 stdlib.h;。
GetTickCount()函数要包含 windows.h;
stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。
windows.h是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是:
WINDEF.H 基本数据类型定义。
WINNT.H 支持Unicode的类型定义。
WINBASE.H Kernel(内核)函数。
WINUSER.H 用户界面函数。
WINGDI.H 图形设备接口函数。
这些头文件定义了Windows的所有资料型态、函数调用、资料结构和常数识别字,它们是Windows文件中的一个重要部分。
在c++中使用srand函数,需要包含头文件cstdlib。在你的程序代码中,少了这一个头文件,所以会被报错。
使用rand函数时头文件应该包括stdlib.h,rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。rand()会返回一个范围在0到RAND_MAX(至少是32767)之间的伪随机数(整数)。
在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。rand()函数需要的头文件是:<stdlib.h>。
rand()函数原型:int rand(void);使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100+1。
扩展资料:
使用rand()和srand()产生指定范围内的随机整数的方法,“模除+加法”的方法因为,对于任意数,0<=rand()%(n-m+1)<=n-m,因此,0+m<=rand()%(n-m+1)+m<=n-m+m,因此,如要产生[m,n]范围内的随机数num,可用:
int num=rand()%(n-m+1)+m。其中的rand()%(n-m+1)+m算是一个公式,记录一下方便以后查阅。比如产生10~30的随机整数:srand(time(0)),int a = rand() % (21)+10。
srand()函数是C语言中产生随机数的一个函数。
函数原型: void srand(unsigned seed)。
功 能: 产生随机数的起始发生数据,和rand函数配合使用。
头 文 件: stdlib.h time.h。
举例如下:
#include <stdio.h>。
#include <stdlib.h>。
#include <time.h>。
int main(void)。
{
int i;
time_t t;。
srand((unsigned) time(&t));。
printf("Ten random numbers from 0 to 99\n\n");。
for (i=0; i<10; i++)。
printf("%d\n", rand()%100);。
return 0;。
}
运行程序,会发现每次产生的随机数都不一样。这是因为这里采用了时间作为种子,而时间在每时每刻都不相同,所以就产生了"随机"的随机数了。所以,要想产生不同的随机数,在使用rand之前需要先调用srand。
是的,头文件stdlib.h里包含了srand和rand函数。如果没有调用srand,那么rand将产生相同的随机数“序列”——就是说如果第一次循环调用rand产生的随机数序列是88,2,33,55……的话,第二次启动循环调用rand产生的随机数序列仍然是88,2,33,55……产生这一问题的根本原因是伪随机序列发生器的初始状态没有发生变化造成的。srand函数的功能就是来改变伪随机序列发生器的初始状态。srand向伪随机序列发生器的初始状态寄存器写入不同的值(状态字),就能使rand函数产生不同的序列,就解决了“序列重复”的问题。显然,人为安排状态字是不现实的,因为安排了就变不了了。所以用NULL来调用time函数获致系统时钟值转换成无符号整数数作为srand的参数,这样每调用一次srand都会写入不同的初始状态字(因为时钟每时每刻都是变化的),就达到目的了。
那就算了吧!我不知道与哪个长得像,这里没有一个像的,也没有一个真正讲出要用srand的原因。我写的时候谁的都没有参考,别说是复制。如果可以,把认为复制的答案弄出来我看看。