**这不是生成数字,而是重新排列一维数组中的数字 需要帮助随机化 rbox 数组中 0,1,2,3 数字的序列。然而,当随机时,它显示 1,1,1,1 或 2,2,2,2 等。有人知道如何将序列随机化为 0,3,2,1 或 2,0,1,3 等吗?
srand(time(NULL));
int randomm = rand()%4;
int rbox[4];
int x;
for(x=0;x<4;x++)
{
rbox[x] = 0;
}
for(x=0;x<4;x++)
{
rbox[x] = randomm;
}
for(x=0;x<4;x++)
{
printf("%i", rbox[x]);
}
最佳答案
填充数组,然后将其打乱并打印打乱后的数组。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 4
int main() {
int rbox[SIZE] = { 0};
int loop = 0;
int index = 0;
int swap = 0;
srand ( time( NULL));
for ( loop = 0; loop < SIZE; loop++) {
rbox[loop] = loop;
}
loop = SIZE;
while ( loop) {
index = rand ( ) % loop;
loop--;
swap = rbox[index];
rbox[index] = rbox[loop];
rbox[loop] = swap;;
}
for ( loop = 0; loop < SIZE; loop++) {
printf ( "%d ", rbox[loop]);
}
printf ( "\n");
return 0;
}
关于c - 在c中随机化一维数组中的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334960/