如何使用函数srand()函数与time.h中? [英] How to use function srand() with time.h?
问题描述
我的程序中包含code应该产生一个随机正整数每次我执行它的时间。它产生的随机数,但只有一次。在此之后,当我执行相同的code,它给我相同的价值观,它使我的code没用的。
My program contains code that should generate a random positive integer number every time I execute it. It generates random numbers but only once. After that, when I execute same code, it gives me same values, and it is making my code useless.
我开始在兰特函数,然后我用的函数srand()与 time.h中头文件的功能,但仍它不能正常工作。
I started with the rand function, and then I used the srand() function with the time.h header file, but still it is not working properly.
#define size 10
for(i=0;i<size;i++)
Arr[i] = rand()%size;
第一次调用(随机):
First call (random):
6 0 2 0 6 7 5 5 8 6
第二个电话(随机的,但同previous):
Second call (random but same as previous):
6 0 2 0 6 7 5 5 8 6
后来,我访问了堆栈溢出问题,我看了一下srand()函数的功能,我用它为:
Later I visited Stack Overflow questions and I read about the srand() function, and I used it as:
#include<time.h>
for(i=0;i<size;i++)
Arr[i] = srand(time(NULL));
第一次调用:
-10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327
第二个电话:
-10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326
这是给我不同的(但不是随机值)。我定义的编曲[I]为unsigned int ,仍然我得到负值。
推荐答案
您需要调用函数srand()
的一次的,以随机种子,然后调用兰特()
在循环:
You need to call srand()
once, to randomize the seed, and then call rand()
in your loop:
#include <stdlib.h>
#include <time.h>
#define size 10
srand(time(NULL)); // randomize seed
for(i=0;i<size;i++)
Arr[i] = rand()%size;
这篇关于如何使用函数srand()函数与time.h中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!