c - 在c中随机化一维数组中的序列

标签 c

**这不是生成数字,而是重新排列一维数组中的数字 需要帮助随机化 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/

相关文章:

c++ - 如何查明长函数返回的位置

静态计算地址的对齐页

c - For循环在一个循环后退出-MPI

c# - 奇数按降序排列,偶数按升序排列

C 指向结构的双/三指针

c - 目标中调用的 Makefile

c++ - 将 MinGw 编译器集成到 Dev C++ 中

c - DMA 引擎超时和 DMA 内存映射

c - Atmega8中断不起作用

c - 使用 fseek() 读取文件的最后 50 个字符