为什么rand()总是返回相同的值?

可能重复:
在C中生成随机数
使用rand生成随机数

我正在尝试生成随机数,但我不断得到数字41.这样一个简单的片段可能会出错?

#include  #include  int main(void) { int a = rand(); printf("%d",a); return 0; } 

感谢帮助。

您需要提供不同的种子,例如:

 #include  #include  #include  int main(void) { int a; srand ( time(NULL) ); a = rand(); printf("%d",a); return 0; } 

你需要为发电机播种。

这是预料之中的。 原因是结果的可重复性。 假设您使用随机序列进行一些测试,并且在特定时间或迭代后测试失败。 如果保存种子,则可以重复测试以复制/调试。 使用epoch当前时间以毫秒为单位播种,并按预期获得randoms(如果您认为需要重复结果,则保存种子)。