创建随机数

时间:2012-02-26 08:47:23

标签: c

我有一个二维数组(3x7),数字介于0到20之间。我想随机更改位置,因此随机重新排列。但似乎每次运行它都有相同的位置。

int arr[numRows][numCols] = {{0,1,2,3,4,5,6},{7,8,9,10,11,12,13},{14,15,16,17,18,19,20}};
random_rearrange_num(arr);
void random_rearrange_num(int p[][numCols])
{
  int temp = 0,k= 0,l = 0;
  for(int i = numRows -1 ; i > 0 ; i--)
  {
    for (int j = numCols-1;j>0; j--)
    {
          k = 0 + rand()/(RAND_MAX/(2-0+1)+1);
          l= 0 + rand()/(RAND_MAX/(6-0+1)+1);
          temp = p[i][j]; 
          p[i][j] = p[k][l];
          p[k][l] = temp;
    }
  }
}

我已经在问题中展示了必要的部分。完整代码位于:https://codereview.stackexchange.com/questions/9419/programming-of-3-x-7-trick

例如:它始终以第一个enter image description here

加载

其次是:

enter image description here

每次重新启动时,数字都在同一个位置。我该如何改变呢?

1 个答案:

答案 0 :(得分:5)

您应首先使用srand()

初始化种子

播种的常用方法是:

srand (time(NULL));