【发布时间】:2019-01-28 02:52:34
【问题描述】:
我正在尝试创建一个函数来使用指针对整数数组进行洗牌以进行学校作业,我对 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;}
}
【问题讨论】:
-
(int) firstIndxPtr = temp转换不能那样工作。您不会更改分配给的变量的类型 -
如果你用正确的类型声明变量,通常这意味着不需要强制转换。
-
好吧,你声明了
cards[52].... 还是没有?在ShuffleDeck()的参数声明中,您需要在cards参数前面放置一个类型标识符,以使其成为一个数组,类似于int cards[52]。这就是我们要求您发布Minimal, Complete, and Verifiable example 的原因,正如所发布的,目前尚不清楚这是您遇到的错误还是您在复制时犯的一些错字。