#include <stdio.h>#include <stdlib.h>#include <time.h>float getRand() {return rand() / (RAND_MAX+1.0);}int rollDie(int x){return getRand()*x+1; } int main(){srand(time(NULL));getRand() 这里!!!!!int value = 0; value = rollDie(6);printf("6-sided die: %i\n", value);value = rollDie(20);printf("20-sided die: %i\n", value);getchar(); }
3 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
getRand();可以不加,但srand(time(NULL));必须加,以初始化随机数种子。否则,每次rand()函数都会生成相同的随机数序列。
芜湖不芜
TA贡献1796条经验 获得超7个赞
getRand()函数其实就是给rand()函数加了一个壳,把生成的随机数换算为一个真小数。
rand()函数在使用之前要先通过srand()函数来变更随机数种子,否则每次调用rand()函数都使用同一个种子、生成同一个随机数。
所以getRand()函数可以改为:
float getRand()
{
srand(time(0)); // 用当前时间作为随机数种子
return rand()/(RAND_MAX+1.0);
}
- 3 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消