2011-06-14 56 views
-2

可能重复:
Repeated random number in a loop在一个循环中重复的随机数

感谢您的意见之前,我更新的代码。

首先在主函数中调用我的函数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

您能否提供最少的可编译示例来演示该问题? – 2011-06-14 14:12:36

+0

请不要在完全相同的主题上创建新的问题!您可以编辑旧问题以显示更新后的代码... – 2011-06-14 14:13:14

+1

您可以创建一个最小,完整,可编辑的问题示例吗?有关如何做到这一点的提示,以及为什么它很有用,请参阅http://sscce.org。 – 2011-06-14 14:14:52

回答

0

也许Act_num [K] .Priority为int。当你致电:

(rand()%10000)*0.0001 

它给你从< 0,0999的数字。所以,如果Act_num [k] .Priority是整数,那么你从这个随机数中得到floor。因此,它始终为0