j******2 发帖数: 362 | 1 如果在一个函数里
int rand_n(int n)
{
srand ( (unsigned)time(NULL) );
return rand()%n;
}
void main()
{
for(int i=0;i<1000;i++)
cout<
}
出来就全部一个数。
如果改成
int rand_n(int n)
{
return rand()%n;
}
void main()
{
srand ( (unsigned)time(NULL) );
for(int i=0;i<1000;i++)
cout<
}
就对了。
敢问这是为虾米呢? | l*********8 发帖数: 4642 | 2 time的精度是秒。
你第一个程序不到一秒就跑完了,所以每次srand接受的参数都是同一个值(顶多两个
值)
【在 j******2 的大作中提到】 : 如果在一个函数里 : int rand_n(int n) : { : srand ( (unsigned)time(NULL) ); : return rand()%n; : } : void main() : { : for(int i=0;i<1000;i++) : cout<
| l*******b 发帖数: 2586 | 3 有意思, 没想出来怎么回事, 只是知道每次调用的都是重置了下随机数发生器, 应该没
必要这样做. 所以都放到 main里
【在 l*********8 的大作中提到】 : time的精度是秒。 : 你第一个程序不到一秒就跑完了,所以每次srand接受的参数都是同一个值(顶多两个 : 值)
|
|