C程序随机值
嘿,我试图在C中的最小值和最大值之间生成一个随机值,其中函数的第一个参数表示最大值,最小值是前一次调用的前一个最大值。该函数可以工作,但由于某些原因,生成的值似乎总是以相同的数字结尾C程序随机值,c,C,嘿,我试图在C中的最小值和最大值之间生成一个随机值,其中函数的第一个参数表示最大值,最小值是前一次调用的前一个最大值。该函数可以工作,但由于某些原因,生成的值似乎总是以相同的数字结尾 void myRand(int max, int* randValue) { static int newMin = 0; srand(time(NULL)); *randValue = (newMin)+rand()%((max-newMin)+1); /* produces rand
void myRand(int max, int* randValue)
{
static int newMin = 0;
srand(time(NULL));
*randValue = (newMin)+rand()%((max-newMin)+1); /* produces random value between previous max value and new max value in parameter 1 */
newMin = max;
}
int main(void)
{
int a, b;
myRand(10, &a);
printf("%d\n", a);
myRand(20, &b);
printf("%d\n", b);
myRand(30, &b);
printf("%d\n", b);
return 0;
}
在函数的第一次调用中,最小值为0。只需调用srandtimeNULL一次。因此,在main的开头移动srand。调用srandtimeNULL;就一次。是的,解决了问题,谢谢