感谢之前的评论,我更新了代码。
首先在main函数中调用srand
int main ()
{
//DefineRelationstozero (); //All predecessors are set to -1
srand((unsigned)time(0));
.......
......
......
for (int k=0;k<iterationnumber;k++)
{
.....
RandomKey ();//i call randomkey for every iteration
}...
void RandomKey ()
{
for (int k=0;k<ActivityNumber;k++)
{
Act_num[k].Priority=(rand()%10000)*0.0001;//random number
}
for (int i=0;i<ActivityNumber;i++)
arr[i]=Act_num[i].Priority;
....
结果:对于每次迭代,我在arr []
中得到完全相同的数字答案 0 :(得分:0)
也许是Act_num [k] .Priority是int。当你打电话:
(rand()%10000)*0.0001
它给出了&lt; 0,0.999&gt;中的数字。所以,如果Act_num [k] .Priority是整数,那么你可以从这个随机数得到最低点。所以它一直都是0