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个不同的随机数?
非加密随机数发生器(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)