随机数生成器生成相同的随机数

时间:2016-12-02 23:01:40

标签: c random

我试图在C中创建一个随机数生成器 - 与使用标准库在Java中进行操作相比,要难得多。

这是我的代码。现在它确实有效,但每次编译和运行时都会得到相同的随机数。所以数字是随机的,只是他们不改变每个方法调用。这是我需要的东西!

每次调用方法时,此方法都应返回不同的数字。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

void generateRandomNumber()
{
    srand(time(NULL));
    //i tried rand() but thats worse all the numbers are the same 33,33,33 etc
    int randomNumber = random() % 100;
    printf("%d\n", randomNumber);
}

int main()
{
    for (int i = 0; i < 100; i++)
        generateRandomNumber();

}

1 个答案:

答案 0 :(得分:0)

确保你只播种一次:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
   int i;
   time_t t;

   srand((unsigned) time(&t));
   for( i = 0 ; i < 100 ; i++ ) {
      printf("%d\n", rand() % 100);
   }

   return(0);
}