//我写了一个返回数组值的函数。值必须是 随机选择。但是在main函数中,当我调用funtion时,它给了我相同的值。我想要不同的随机数字,我可以避免吗?
void a();
int main(){
a();
a();
return 0;
}
void a(){
int i, b[6];
srand(time(NULL));
for(i=0; i<6; i++){
b[i]= rand()%10 +1;
printf("%d " , b[i]);
if(i==5) printf("\n");
}
}
答案 0 :(得分:2)
您应该只对随机发生器播种一次。通过在彼此之后快速播种两次,很有可能时间和种子值仍然相同,伪随机数生成器将返回相同的序列两次。
void a();
int main()
{
srand(time(NULL)); //Seed only once...
a();
a();
return 0;
}
void a()
{
int i, b[6];
for(i=0; i<6; i++)
{
b[i]= rand()%10 +1;
printf("%d " , b[i]);
if(i==5)
printf("\n");
}
}
答案 1 :(得分:1)
void a();
int main(){
srand(time(NULL));
a();
a();
return 0;
}
void a(){
int i, b[6];
for(i=0; i<6; i++){
b[i]= rand()%10 +1;
printf("%d " , b[i]);
if(i==5) printf("\n");
}
}