应该是头文件没有包含。time函数加<ctime> srand和rand函数加<cstdlib> 你应该把整个文件贴出来。
srand是产生随机数的种子,是的调用rand()函数时,每次产生的随机数不一样;也就是说,如果不加上srand,那么rand()函数产生的随机数是一样的
srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。 srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的 随机输出十个0-100...
不对,转换成unsigned就没有影响,unsigned的范围是0到4294967295,而time()返回的数值还不到2147483648(...
2、使用时,参数可以是unsigned型的任意数据,比如srand(10); 3、如果不使用srand,用rand()产生的随机数,在多次运行,结果是一样的。 参考代码 voidtest_rand(void) { unsignedlongn; srand((unsigned)time(NULL)); for(inti =0; i <100; i++) ...
用0调用时间函数time(),将其返回值强制转换为unsigned型,作为参数来调用srand( )函数。srand( )是为rand( )函数初始化随机发生器的启动状态,以产生伪随机数,所以常把srand( )称为种子函数。用time()返回的时间值做种子的原因是time()返回的是实时时间值,每时毎刻都在变化,这样产生的伪随机数...
只是让srand函数传递了不同的数据类型,效果日一样的。因为srand函数的 形式参数 规定为unsigned int 型,但C的函数 参数传递 规则是把被传数据类型强制转化为函数的形式参数的类型,所以上述三种情况的结果一样,即便写成srand((int)time(0)),最后srand得到的还是unsigned int 型。
只是让srand函数传递了不同的数据类型,效果日一样的。因为srand函数的形式参数规定为unsigned int 型,但C的函数参数传递规则是把被传数据类型强制转化为函数的形式参数的类型,所以上述三种情况的结果一样,即便写成srand((int)time(0)),最后srand得到的还是unsigned int 型。00...
C语言srand((unsigned)time(NULL)); 是什么意思 简介 srand()函数用来设置算法的种子,time(NULL)返回当前的时间,先调用srand(time(NULL))是把当前的时间作为种子,是程序每次运行产生不同的随机数序列。涉及到三个概念:1、随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的。2、随机数种子:...
查看time函数,返回的是秒数,你的循环执行太快了,几乎在一秒内执行完了。初始值一样,所以 srand()...