独特的随机数

Gen*_*axo 0 c random

我一直在研究一个随机数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.

谢谢

Kir*_*rov 5

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)