В Си, как перемешать указатели индекса массива в случайном порядке - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь создать функцию, чтобы перетасовать массив целых чисел, используя указатели для школьного задания, я новичок в c, поэтому я не совсем уверен, как это должно быть сделано правильно.

Ниже приведен код, который я пробовал до сих пор, но я получаю много ошибок раздачи или ошибок, говорящих мне, что карты [] не являются массивом.

void ShuffleDeck(cards[52]){
    int temp;
    int *firstIndxPtr ;
    firstIndxPtr = cards[0];
    int *randIndxPtr1;
    for (int x = 52; x > 0 ; x--){
        randIndxPtr1 = cards[rand() % x];   
        temp = (int) randIndxPtr1;  
        randIndxPtr1 = firstIndxPtr;
        (int) firstIndxPtr = temp;}
}

1 Ответ

0 голосов
/ 28 января 2019

Поскольку это ваше назначение, вам нужно понимать указатель и значение, на которое он указывает, вы должны использовать любое из следующих значений для вашего указателя.

firstIndexPtr = &cards[0];
firstIndexPtr = cards;

И вы не можете передать карты массива[52] в качестве аргумента функции это должно быть что-то вроде

void ShffuleDeck(int *cards, int number_of_cards)
{
}
...