2015-12-10 4 views
0

Я пытаюсь перетасовать этот многомерный массив в другой массив, например колоду карт.Shuffle многомерный массив в C

int ledMatrix[25][3] = { 
    {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12}, {13,14,15}, 
    {17,18,19}, {20,21,22}, {23,24,25}, {26,27,28}, {29,30,31}, 
    {33,34,35}, {36,37,38}, {39,40,41}, {42,43,44}, {45,46,47}, 
    {49,50,51}, {52,53,54}, {55,56,57}, {58,59,60}, {61,62,63}, 
    {65,66,67}, {68,69,70}, {71,72,73}, {74,75,76}, {77,78,79} 
}; 

Я попытался с:

int shuffle(){ 
    for (int i=0; i<25; i++) 
    { 
    int r = random(i,25 
    temp = ledMatrix[i]; 
    ledMatrix[i] = ledMatrix[r]; 
    ledMatrix[r] = temp; 
    } 
} 

Но я получаю странные ошибки: недопустимое назначение массива. Я думаю, это потому, что я использую многомерные массивы. Может кто-нибудь мне помочь? спасибо

ответ

1

Вам нужно скопировать отдельные столбцы, например:

int shuffle(){ 
    for (int i=0; i<25; i++) 
    { 
    int r = random(i,25); 
    for (int j = 0; j < 3; j++) 
    { 
     int temp = ledMatrix[i][j]; 
     ledMatrix[i][j] = ledMatrix[r][j]; 
     ledMatrix[r][j] = temp; 
    } 
    } 
} 
+0

Благодаря это мне очень помогло! –

Смежные вопросы