Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C:创建具有唯一数字的二维数组_C_For Loop_Multidimensional Array_Random_Unique - Fatal编程技术网

C:创建具有唯一数字的二维数组

C:创建具有唯一数字的二维数组,c,for-loop,multidimensional-array,random,unique,C,For Loop,Multidimensional Array,Random,Unique,我想在C中使用随机数创建一个多维数组,但每行的数字都是唯一的。我该怎么做?代码如下: int main(int argc, char **argv) { int playfields [12][7]; int rows, columns; int i; int t,j; int number[7], n=0; for (i = 0; i<35; i++) { number[i] = i +1; } for(rows = 0; rows < 12; rows++

我想在C中使用随机数创建一个多维数组,但每行的数字都是唯一的。我该怎么做?代码如下:

int main(int argc, char **argv)
{

int playfields [12][7];
int rows, columns;
int i;
int t,j;
int number[7], n=0;


for (i = 0; i<35; i++) {    
    number[i] = i +1;
}

for(rows = 0; rows < 12; rows++) {              
        for (columns = 0; columns < 7; columns++) {
            j = (rand() % 35) + 1;      
            t = number[j];
            number[rows] = t;
        }
    }


       for(rows = 0; rows < 12; rows++) {       
            for (columns=0; columns<7; columns++) { 
                playfields[rows][columns] = number[n++]; 
                printf("%d ", playfields[rows][columns]);
            }
            printf("\n");
        }

return 0;

}
int main(int argc,char**argv)
{
国际游乐场[12][7];;
int行、列;
int i;
int t,j;
整数[7],n=0;

对于(i=0;i简单的一种方法是将
1d
数组中的
1
中的数字分配到
84
,然后将其应用于洗牌。初始数字集之间的唯一性确保了您提到的标准之一。将
1d
数组中的数字分配到
2d
数组。这将生成一个随机序列
2d
数组中的数字

也可以将其更改为适用于二维阵列

srand(time(NULL));
...
for (int i = row - 1; i > 0; i--) {
        for (int j = col - 1; j > 0; j--) {
            int rr = rand() % (i) ;
            int cc = rand() % (j) ;

            int t = arr[i][j];
            arr[i][j] = arr[rr][cc];
            arr[rr][cc] = t;
        }
    }

使用随机数创建堆栈,然后将堆栈放入二维数组:

#include <time.h>
#include <stdlib.h>

#define ItemsCount  10

int main()
{
    srand(time(NULL));
    int i,j,flag,array[ItemsCount],array2d[ItemsCount/2][ItemsCount/2];

    // Create the stack
    for(i=0;i<ItemsCount;i++)
    {
        flag = 0;
        do
        {
            array[i] = rand();
            for(j=0;j<i;j++)
                if(array[i]==array[j])
                    flag = 1;

        }
        while(flag)

    }

    // assign them to 2d array
    for(i=0;i<ItemsCount/2;i++)
        for(j=0;j<ItemsCount/2;j++)
            array2d[i][j]=array[i+j];

    return 0;
}
然后foreach元素从数组中选取另一个随机项并交换它们。
此方法不是随机的,但它可以工作。它取决于您的需要。

提供的解决方案为阵列中的每个单元生成一个唯一的随机数

每个单元格将从移动范围中获得一个随机数。 一旦数组具有唯一的随机数,则可以进一步洗牌

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NR_OF_ROWS   12
#define NR_OF_COLS    7
#define RANGE        10

int get_random(int M, int N)
{
    int r = M + rand() / (RAND_MAX / (N - M) + 1);
    return r; 
}

void shuffle(int numberOfShuffles, int table[][NR_OF_COLS] ) 
{
    int row1,row2,col1,col2,temp1,temp2;

    for (int i=0; i< numberOfShuffles; i++)
    {
        row1 = get_random(0, NR_OF_ROWS);
        col1 = get_random(0, NR_OF_COLS);

        row2 = get_random(0, NR_OF_ROWS);
        col2 = get_random(0, NR_OF_COLS);

        temp1 = table[row1][col1];
        temp2 = table[row2][col2];

        table[row1][col1] = temp2;
        table[row2][col2] = temp1;         
    }
}

void print_table( int table[][NR_OF_COLS] ) 
{
    printf("\n");   

    for(int rows = 0; rows < NR_OF_ROWS ; rows++) {              
      for (int columns = 0; columns < NR_OF_COLS; columns++){
        printf( "<pf=%4d>  ",table[rows][columns]);   
      }
     printf("\n");
    }
}

int main(int argc, char **argv)
{
int playfields [NR_OF_ROWS][NR_OF_COLS];

int rows, columns;
int number;
int lRange,hRange;
int n=0;
int numberOfShuffles = NR_OF_ROWS*NR_OF_COLS;

srand (time (NULL)); //  seed generator

for(rows = 0; rows < NR_OF_ROWS ; rows++) {              
    for (columns = 0; columns < NR_OF_COLS; columns++) {

        lRange = n*RANGE+1;
        hRange = n*RANGE + RANGE;

        number = get_random(lRange, hRange); // generate a unique number which will belong to  <lRange, lRange> range 

        playfields[rows][columns] = number;
        printf( "l=%4d h=%4d <pf=%4d>  ", lRange, hRange, playfields[rows][columns]);

        n++;
    }
    printf("\n");
}

//Now your table has unique numbers you can shuffle them if you wish: 

shuffle(numberOfShuffles, playfields);
print_table(playfields);

return 0;
}
#包括
#包括
#包括
#定义第12行的NR_
#定义第7列的编号
#定义范围10
int get_random(int M,int N)
{
int r=M+rand()/(rand_MAX/(N-M)+1);
返回r;
}
无效洗牌(int numberOfShuffles,int table[][NR\u OF\u COLS])
{
int row1,row2,col1,col2,temp1,temp2;
for(int i=0;i
输出:

l=   1 h=  10 <pf=   4>  l=  11 h=  20 <pf=  13>  l=  21 h=  30 <pf=  22>  l=  31 h=  40 <pf=  33>  l=  41 h=  50 <pf=  41>  l=  51 h=  60 <pf=  52>  l=  61 h=  70 <pf=  68>                                                                     
l=  71 h=  80 <pf=  78>  l=  81 h=  90 <pf=  86>  l=  91 h= 100 <pf=  91>  l= 101 h= 110 <pf= 106>  l= 111 h= 120 <pf= 116>  l= 121 h= 130 <pf= 123>  l= 131 h= 140 <pf= 132>                                                                     
l= 141 h= 150 <pf= 148>  l= 151 h= 160 <pf= 156>  l= 161 h= 170 <pf= 167>  l= 171 h= 180 <pf= 171>  l= 181 h= 190 <pf= 187>  l= 191 h= 200 <pf= 194>  l= 201 h= 210 <pf= 203>                                                                     
l= 211 h= 220 <pf= 219>  l= 221 h= 230 <pf= 225>  l= 231 h= 240 <pf= 232>  l= 241 h= 250 <pf= 248>  l= 251 h= 260 <pf= 256>  l= 261 h= 270 <pf= 262>  l= 271 h= 280 <pf= 273>                                                                     
l= 281 h= 290 <pf= 287>  l= 291 h= 300 <pf= 295>  l= 301 h= 310 <pf= 304>  l= 311 h= 320 <pf= 312>  l= 321 h= 330 <pf= 328>  l= 331 h= 340 <pf= 335>  l= 341 h= 350 <pf= 345>                                                                     
l= 351 h= 360 <pf= 358>  l= 361 h= 370 <pf= 367>  l= 371 h= 380 <pf= 373>  l= 381 h= 390 <pf= 386>  l= 391 h= 400 <pf= 393>  l= 401 h= 410 <pf= 403>  l= 411 h= 420 <pf= 413>                                                                     
l= 421 h= 430 <pf= 429>  l= 431 h= 440 <pf= 436>  l= 441 h= 450 <pf= 444>  l= 451 h= 460 <pf= 458>  l= 461 h= 470 <pf= 462>  l= 471 h= 480 <pf= 472>  l= 481 h= 490 <pf= 488>                                                                     
l= 491 h= 500 <pf= 499>  l= 501 h= 510 <pf= 506>  l= 511 h= 520 <pf= 512>  l= 521 h= 530 <pf= 528>  l= 531 h= 540 <pf= 531>  l= 541 h= 550 <pf= 544>  l= 551 h= 560 <pf= 557>                                                                     
l= 561 h= 570 <pf= 566>  l= 571 h= 580 <pf= 575>  l= 581 h= 590 <pf= 581>  l= 591 h= 600 <pf= 594>  l= 601 h= 610 <pf= 601>  l= 611 h= 620 <pf= 614>  l= 621 h= 630 <pf= 625>                                                                     
l= 631 h= 640 <pf= 639>  l= 641 h= 650 <pf= 648>  l= 651 h= 660 <pf= 651>  l= 661 h= 670 <pf= 667>  l= 671 h= 680 <pf= 675>  l= 681 h= 690 <pf= 683>  l= 691 h= 700 <pf= 694>                                                                     
l= 701 h= 710 <pf= 708>  l= 711 h= 720 <pf= 715>  l= 721 h= 730 <pf= 727>  l= 731 h= 740 <pf= 738>  l= 741 h= 750 <pf= 742>  l= 751 h= 760 <pf= 752>  l= 761 h= 770 <pf= 766>                                                                     
l= 771 h= 780 <pf= 774>  l= 781 h= 790 <pf= 784>  l= 791 h= 800 <pf= 795>  l= 801 h= 810 <pf= 803>  l= 811 h= 820 <pf= 819>  l= 821 h= 830 <pf= 826>  l= 831 h= 840 <pf= 832>                                                                           

<pf= 287>  <pf= 256>  <pf= 106>  <pf= 738>  <pf=  22>  <pf= 648>  <pf= 819>                                                                                                                                                                       
<pf=  33>  <pf= 295>  <pf=  91>  <pf= 358>  <pf= 203>  <pf= 774>  <pf= 132>                                                                                                                                                                       
<pf= 403>  <pf= 594>  <pf= 667>  <pf= 499>  <pf= 156>  <pf=  13>  <pf= 194>                                                                                                                                                                       
<pf= 614>  <pf= 694>  <pf= 826>  <pf= 557>  <pf= 708>  <pf= 367>  <pf= 273>                                                                                                                                                                       
<pf= 742>  <pf= 225>  <pf= 506>  <pf= 312>  <pf= 328>  <pf= 335>  <pf= 345>                                                                                                                                                                       
<pf= 123>  <pf= 373>  <pf= 528>  <pf= 248>  <pf= 393>  <pf= 472>  <pf= 187>                                                                                                                                                                       
<pf= 386>  <pf= 262>  <pf= 444>  <pf= 458>  <pf= 167>  <pf= 625>  <pf= 752>                                                                                                                                                                       
<pf= 512>  <pf= 601>  <pf=   4>  <pf=  41>  <pf= 531>  <pf= 727>  <pf= 651>                                                                                                                                                                       
<pf= 566>  <pf=  86>  <pf= 683>  <pf=  68>  <pf= 832>  <pf= 488>  <pf= 171>                                                                                                                                                                       
<pf= 116>  <pf=  52>  <pf= 429>  <pf= 544>  <pf= 675>  <pf= 148>  <pf= 639>                                                                                                                                                                       
<pf= 436>  <pf= 715>  <pf= 575>  <pf= 219>  <pf= 413>  <pf= 581>  <pf= 766>                                                                                                                                                                       
<pf=  78>  <pf= 784>  <pf= 795>  <pf= 803>  <pf= 462>  <pf= 232>  <pf= 304>  
l=1H=10L=11H=20L=21H=30L=31H=40L=41H=50L=51H=60L=61H=70
l=71 h=80 l=81 h=90 l=91 h=100 l=101 h=110 l=111 h=120 l=121 h=130 l=131 h=140
l=141 h=150 l=151 h=160 l=161 h=170 l=171 h=180 l=181 h=190 l=191 h=200 l=201 h=210
l=211 h=220 l=221 h=230 l=231 h=240 l=241 h=250 l=251 h=260 l=261 h=270 l=271 h=280
l=281 h=290 l=291 h=300 l=301 h=310 l=311 h=320 l=321 h=330 l=331 h=340 l=341 h=350
l=351 h=360 l=361 h=370 l=371 h=380 l=381 h=390 l=391 h=400 l=401 h=410 l=411 h=420
l=421H=430 l=431H=440 l=441H=450 l=451H=460 l=461H=470 l=471H=480 l=481H=490
l=491 h=500 l=501 h=510 l=511 h=520 l=521 h=530 l=531 h=540 l=541 h=550 l=551 h=560
l=561 h=570 l=571 h=580 l=581 h=590 l=591 h=600 l=601 h=610 l=611 h=620 l=621 h=630
l=631H=640 l=641H=650 l=651H=660 l=661H=670L=671H=680L=681H=690L=691H=700
l=701 h=710 l=711 h=720 l=721 h=730 l=731 h=740 l=741 h=750 l=751 h=760 l=761 h=770
l=771 h=780 l=781 h=790 l=791 h=800 l=801 h=810 l=811 h=820 l=821 h=830 l=831 h=840
l=   1 h=  10 <pf=   4>  l=  11 h=  20 <pf=  13>  l=  21 h=  30 <pf=  22>  l=  31 h=  40 <pf=  33>  l=  41 h=  50 <pf=  41>  l=  51 h=  60 <pf=  52>  l=  61 h=  70 <pf=  68>                                                                     
l=  71 h=  80 <pf=  78>  l=  81 h=  90 <pf=  86>  l=  91 h= 100 <pf=  91>  l= 101 h= 110 <pf= 106>  l= 111 h= 120 <pf= 116>  l= 121 h= 130 <pf= 123>  l= 131 h= 140 <pf= 132>                                                                     
l= 141 h= 150 <pf= 148>  l= 151 h= 160 <pf= 156>  l= 161 h= 170 <pf= 167>  l= 171 h= 180 <pf= 171>  l= 181 h= 190 <pf= 187>  l= 191 h= 200 <pf= 194>  l= 201 h= 210 <pf= 203>                                                                     
l= 211 h= 220 <pf= 219>  l= 221 h= 230 <pf= 225>  l= 231 h= 240 <pf= 232>  l= 241 h= 250 <pf= 248>  l= 251 h= 260 <pf= 256>  l= 261 h= 270 <pf= 262>  l= 271 h= 280 <pf= 273>                                                                     
l= 281 h= 290 <pf= 287>  l= 291 h= 300 <pf= 295>  l= 301 h= 310 <pf= 304>  l= 311 h= 320 <pf= 312>  l= 321 h= 330 <pf= 328>  l= 331 h= 340 <pf= 335>  l= 341 h= 350 <pf= 345>                                                                     
l= 351 h= 360 <pf= 358>  l= 361 h= 370 <pf= 367>  l= 371 h= 380 <pf= 373>  l= 381 h= 390 <pf= 386>  l= 391 h= 400 <pf= 393>  l= 401 h= 410 <pf= 403>  l= 411 h= 420 <pf= 413>                                                                     
l= 421 h= 430 <pf= 429>  l= 431 h= 440 <pf= 436>  l= 441 h= 450 <pf= 444>  l= 451 h= 460 <pf= 458>  l= 461 h= 470 <pf= 462>  l= 471 h= 480 <pf= 472>  l= 481 h= 490 <pf= 488>                                                                     
l= 491 h= 500 <pf= 499>  l= 501 h= 510 <pf= 506>  l= 511 h= 520 <pf= 512>  l= 521 h= 530 <pf= 528>  l= 531 h= 540 <pf= 531>  l= 541 h= 550 <pf= 544>  l= 551 h= 560 <pf= 557>                                                                     
l= 561 h= 570 <pf= 566>  l= 571 h= 580 <pf= 575>  l= 581 h= 590 <pf= 581>  l= 591 h= 600 <pf= 594>  l= 601 h= 610 <pf= 601>  l= 611 h= 620 <pf= 614>  l= 621 h= 630 <pf= 625>                                                                     
l= 631 h= 640 <pf= 639>  l= 641 h= 650 <pf= 648>  l= 651 h= 660 <pf= 651>  l= 661 h= 670 <pf= 667>  l= 671 h= 680 <pf= 675>  l= 681 h= 690 <pf= 683>  l= 691 h= 700 <pf= 694>                                                                     
l= 701 h= 710 <pf= 708>  l= 711 h= 720 <pf= 715>  l= 721 h= 730 <pf= 727>  l= 731 h= 740 <pf= 738>  l= 741 h= 750 <pf= 742>  l= 751 h= 760 <pf= 752>  l= 761 h= 770 <pf= 766>                                                                     
l= 771 h= 780 <pf= 774>  l= 781 h= 790 <pf= 784>  l= 791 h= 800 <pf= 795>  l= 801 h= 810 <pf= 803>  l= 811 h= 820 <pf= 819>  l= 821 h= 830 <pf= 826>  l= 831 h= 840 <pf= 832>                                                                           

<pf= 287>  <pf= 256>  <pf= 106>  <pf= 738>  <pf=  22>  <pf= 648>  <pf= 819>                                                                                                                                                                       
<pf=  33>  <pf= 295>  <pf=  91>  <pf= 358>  <pf= 203>  <pf= 774>  <pf= 132>                                                                                                                                                                       
<pf= 403>  <pf= 594>  <pf= 667>  <pf= 499>  <pf= 156>  <pf=  13>  <pf= 194>                                                                                                                                                                       
<pf= 614>  <pf= 694>  <pf= 826>  <pf= 557>  <pf= 708>  <pf= 367>  <pf= 273>                                                                                                                                                                       
<pf= 742>  <pf= 225>  <pf= 506>  <pf= 312>  <pf= 328>  <pf= 335>  <pf= 345>                                                                                                                                                                       
<pf= 123>  <pf= 373>  <pf= 528>  <pf= 248>  <pf= 393>  <pf= 472>  <pf= 187>                                                                                                                                                                       
<pf= 386>  <pf= 262>  <pf= 444>  <pf= 458>  <pf= 167>  <pf= 625>  <pf= 752>                                                                                                                                                                       
<pf= 512>  <pf= 601>  <pf=   4>  <pf=  41>  <pf= 531>  <pf= 727>  <pf= 651>                                                                                                                                                                       
<pf= 566>  <pf=  86>  <pf= 683>  <pf=  68>  <pf= 832>  <pf= 488>  <pf= 171>                                                                                                                                                                       
<pf= 116>  <pf=  52>  <pf= 429>  <pf= 544>  <pf= 675>  <pf= 148>  <pf= 639>                                                                                                                                                                       
<pf= 436>  <pf= 715>  <pf= 575>  <pf= 219>  <pf= 413>  <pf= 581>  <pf= 766>                                                                                                                                                                       
<pf=  78>  <pf= 784>  <pf= 795>  <pf= 803>  <pf= 462>  <pf= 232>  <pf= 304>