我在C中编写了这个函数,我想让它创建一个随机排列或从1到n的数字列表.我无法让它没有重复的数字.所以,如果你有n = 4,我希望它只返回一个包含1-4的随机数组,例如:{1,3,4,2}
int* random(int n)
{
int* r = malloc(n * sizeof(int));
// initial range of numbers
for(int i=0;i<n;++i){
r[i]=i+1;
}
// shuffle
for (int i = 1; i <= n; ++i){
int j = rand() % i;
r[i] = r[j];
r[j] = i;
}
return r;
}
Run Code Online (Sandbox Code Playgroud) c ×1