#include #include #include #include int main(){\x05//S:黑桃 H:

#include
#include
#include
#include
int main()
{
x05//S:黑桃 H:红心 C:草花 D:方块
x05char suits[] = {'S','H','C','D'};
x05//等级
x05char ranks[] = {'2','3','4','5','6','7',
x05x05x05x05x05x05'8','9','t','J','Q','K','A'};
x05int n;//产生几张牌
x05printf("你要必张牌:");
x05scanf("%d",&n);
x05srand(time(NULL));//这条指令什么意思?
x05bool f[4][13] = {false};
x05int i;
x05for(i=0; i
孝心堂 1年前 已收到1个回答 举报

dreamyswan 幼苗

共回答了13个问题采纳率:76.9% 举报

srand
  srand函数是随机数发生器的初始化函数.
  原型:void srand(unsigned seed);
  用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数.如: srand(1); 直接使用1来初始化种子.不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据.srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的.

1年前 追问

6

孝心堂 举报

srand(1)直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化//初始化为srand(0)呢?也会随机数重复?你说的重复是 重复出现初始化的数?所以传时间进去, 要是随即时间,传数进去? 上面程序要改成srand((unsigned) time(&t));//直接加上这句就行?

举报 dreamyswan

电脑的随机数都是伪随机,也就是通过一定的算法得出一个数列,然后每 rand()一次就取一个数。 而srand()的功能就是就是设置产生随机数的公式的参数(随机数种子),如果使用相同的种子,那么得到的随机数也就是相同的。自然,如果使用不同的种子,得出的随机数序列也是不同的。 不同的种子会得到 固定 的 不同的随机数序列。 例如: void main() { srand(1); cout<
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.048 s. - webmaster@yulucn.com