我正在尝试使用raspberry pi在C中生成一个简单的随机数。代码编译得很好,但在运行时,数字不是随机的,每次都是384。
我哪里错了?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf ("Random number generator\n") ;
int x = (rand() % 1000) + 1;
printf("%d\n", x);
return 0 ;
}
答案 0 :(得分:3)
您需要为随机数生成器播种一些自然随机的值,如当前时间。类似的东西:
srand (time(NULL));
更新:请注意,如果您使用上面的示例,则需要为时间库添加一个include:
include <time.h>
答案 1 :(得分:0)
使用此函数生成随机值。还要确保添加库包括
// Random value will be from 0 to #
int GenerateRandomInt (int MaxValue)
{
unsigned int iseed = (unsigned int)time(NULL); //Seed srand() using time() otherwise it will start from a default value of 1
srand (iseed);
int random_value = (int)((1.0 + MaxValue) * rand() / ( RAND_MAX + 1.0 ) ); //Scale rand()'s return value against RAND_MAX using doubles instead of a pure modulus to have a more distributed result.
return(random_value);
}