首页 > 解决方案 > 在C中,如何以随机顺序打乱数组索引的指针

问题描述

我正在尝试创建一个函数来使用学校作业的指针对整数数组进行洗牌,我对 c 比较新,所以我不确定应该如何正确完成它。

下面是我到目前为止尝试过的代码,但是我得到了很多转换错误,或者错误告诉我 cards[] 不是数组。

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;}
}

标签: cpointersshuffle

解决方案


由于这是您的任务,您需要了解指针及其指向的值,您应该为指针使用以下值之一。

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

而且您不能将数组 cards[52] 作为函数参数传递,它应该类似于

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

推荐阅读