gcc 4.4.4 c89我正在使用下面的代碼。但是,我不斷得到相同的數(shù)字: 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。但是,我上一次執(zhí)行此操作時(shí),我獲得了17次3次。非常感謝,
3 回答

慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
您正在循環(huán)內(nèi)進(jìn)行播種(由于執(zhí)行循環(huán)的速度快,所以具有相同的值),這會(huì)使每次生成的隨機(jī)數(shù)相同。
您需要將您的種子功能外循環(huán):
/* 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 關(guān)注
- 470 瀏覽
添加回答
舉報(bào)
0/150
提交
取消