gcc 4.4.4 c89我正在使用下面的代码。但是,我不断得到相同的数字: size_t i = 0; for(i = 0; i < 3; i++) { /* Initialize random number */ srand((unsigned int)time(NULL)); /* Added random number (simulate seconds) */ add((rand() % 30) + 1); }我想退回0到30。但是,我上一次执行此操作时,我获得了17次3次。非常感谢,
3 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
您正在循环内进行播种(由于执行循环的速度快,所以具有相同的值),这会使每次生成的随机数相同。
您需要将您的种子功能外循环:
/* Initialize random number */
srand((unsigned int)time(NULL));
for(i = 0; i < 3; i++) {
/* Added random number (simulate seconds) */
add((rand() % 30) + 1);
}
- 3 回答
- 0 关注
- 449 浏览
添加回答
举报
0/150
提交
取消