0
我有一个数字在0到20之间的2维数组(3x7)。我想随机更改位置,因此它随机重新排列。但似乎每次运行它都有相同的位置。创建随机数
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
例如:它总是加载了这个第一
二是这样的:
每次我重新启动,号码在同一位置。我如何改变它?
我在哪里可以添加此? – lakesh 2012-02-26 08:51:02
@lakesh:在第一个'rand()'之前 - 而不是在循环中。在你的示例中,我会在[int temp = 0,k = 0,l = 0;',或者甚至在函数调用之前[在main()]中完成它。注意你还需要包含'time.h' – amit 2012-02-26 08:52:11
我需要任何lib函数吗? – lakesh 2012-02-26 08:54:19