
// util.h #include <time.h> int createRandom(min, max) { srand(time(NULL)); if (!min) min = 0; return rand() % max + min; } 我试着打印出time(NULL), 发现都是相同的。
1 yahoo21cn 2015-05-06 17:27:08 +08:00 因为在同一秒内所以导致随机种子相同了吧 |
2 XadillaX 2015-05-06 17:28:18 +08:00 `srand()` 函数在整个程序里面只需要执行一次就够了。 |
3 123123 2015-05-06 18:21:29 +08:00 就如楼上说的执行一次就够了 不过你这个种子值设置的也有问题 会导致每次生成同样的数列 |
4 bdbai 2015-05-06 18:27:29 +08:00 via iPhone 把生成的随机数存起来 下次发现重复就等一会 |
5 ho121 2015-05-06 18:48:27 +08:00 via Android 为什么在头文件中写函数定义 |
6 bjzhush 2015-05-06 19:44:09 +08:00 加个参数seed,传入当前毫秒级时间 |
7 sandideas 2015-05-06 19:48:58 +08:00 用time当做随机数的种子就可以了 |
8 DrakeLeung OP @XadillaX 我试了可以。但是这样的话,我怎么封装`createNumber()`函数啊? |