为了账号安全,请及时绑定邮箱和手机立即绑定

使用兰德生成随机数

使用兰德生成随机数

C
慕尼黑的夜晚无繁华 2019-11-03 16:04:18
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);

}



查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信