在C语言中使用2个不同的随机数

1 c

可能重复:
调用rand()返回非随机结果

在我的工作室中,我需要2个不同的随机数,但我得到2个相同的随机数.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int random1_6(){
 int k;
 srand(time(0));
 k=((rand()%6)+1);
 return k;
}
int main(void){
 int a,b;
    a=random1_6();
    printf("%d.\n",a);
    b=random1_6();
    printf("%d.\n",b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何获得2个不同的随机数?

ckr*_*use 5

非加密随机数发生器(RNG)不是真正随机的,而是基于种子生成类似随机数的数字.

你要做的是用相同的种子初始化RNG两次,这样你就得到了相同的结果.只需将RNG播种一次,例如在程序启动时,您将得到随机的不同结果.

编辑:像下面的代码应该工作:

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

int random1_6(){
  return ((rand() % 6) + 1);
}

int main(void){
  int a,b;
  srand(time(NULL));

  a = random1_6();
  printf("%d.\n",a);

  b=random1_6();
  printf("%d.\n",b);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)