我一直在研究一个随机数gen,创建6个独特的随机数1-49,我可以使它工作,因此6个随机数1-49,或6个独特的随机数,但不是同时的所有上述.我可以获得编译的代码,但每次尝试使用% 49 +1不同的地方时它都会崩溃.
我正在使用的代码是:
{
int numbers [SIZE];
int i, j, n;
srand (time(NULL));
for (i = 0; i < SIZE; i++)
numbers[i] = i;
for(i = 0; i < SIZE; i++)
{
j = rand() % 49 + 1;
n = numbers[j];
numbers[j] = numbers[i];
numbers[i] = n;
}
for (i = 0; i < SIZE; i++)
MyOutputDebugString ("%d\n", numbers[i]);
Run Code Online (Sandbox Code Playgroud)
SIZE定义为6.
谢谢
SIZE定义为6.
所以,你的数组numbers就像
int numbers [6];
Run Code Online (Sandbox Code Playgroud)
一旦
j = rand() % 49 + 1;
Run Code Online (Sandbox Code Playgroud)
被执行,j将在[1; 49],所以,如果它> 5,在这一行,你将有一个超出范围的索引::
n = numbers[j];
Run Code Online (Sandbox Code Playgroud)