所以我要做的就是从用户那里输入要使用多少张卡片,然后将每张卡片随机分配给数组中的不同索引。我在让 rand 函数正常工作时遇到很多问题。我已经阅读了足够多的内容,找到了多种不同的方式来对数组中的元素进行混洗,以发现这种方式在避免重复方面是最简单的。我正在使用 GCC,在输入卡片数量后,我永远不会从数组中取回值,如果我这样做,它们都是非常大的数字。任何帮助,将不胜感激。
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
void main(){
srand(time(NULL));
int d, c, i, z, l, r;
printf("Enter the deck length: ");
scanf("%d\n ", &c);
int deck[c];
int swap[c];
z = c;
for(l=0; l<c; l++){
swap[l] = l;
}
for(i=z; i=0; i--){
r = rand() / i
deck[i] = swap[r];
for(r; r=(c-1); r++){
swap[r] = swap[(r+1)];
}
}
for(d = 0; d < c; d++){
printf("%d ", deck[d]);
}
return;
}