急啊!!!关于C语言中随机数的生成!!!
发布网友
发布时间:2023-02-21 18:54
我来回答
共3个回答
热心网友
时间:2023-11-18 13:48
应该说
这两句都存在隐藏的错误
P[i].Max[j]=rand()%total[j]; //生成P[i].Max[j]在0~total[j]之间
P[i].Allocation[j]=rand()%P[i].Max[j]; //生成P[i].Allocation[j]在0~P[i].Max[j]之间
第一个也许你没有遇到。但是到第二个范围越小。得到随机数为零的时候。
rand函数取数失败!调试过程,报错也是提示P[i].Max[j]变成了零
所以需要对生成的随机数为零的做相应的特殊处理
热心网友
时间:2023-11-18 13:49
如果你不能保证P[i].Max[j] 不为0的话,那么换种方式来取得 0 - xt之间的数
int num, xt = 100;
srand((int)time(NULL));
num = (int)(xt*rand()/(RAND_MAX + 1.0)); //得到的num 介于 0- xt之间
热心网友
时间:2023-11-18 13:49
P[i].Max[j]有可能是0啊,发生了除0错误