在C中随机填充2个整数的数组

时间:2019-04-19 20:45:45

标签: c

我正在尝试仅用2个值填充一个很长的数组,每个索引的随机顺序应该为0或255。我该怎么办?我在那里什么也找不到。

1 个答案:

答案 0 :(得分:1)

  

rand()函数返回一个伪随机整数,范围为0到   包含RAND_MAX(即数学范围[0,RAND_MAX])。

     

srand()函数将其参数设置为新序列的种子   rand()返回的伪随机整数的数量。这些顺序   通过调用具有相同种子值的srand()可重复进行。

例如,您可以这样做:

#include<stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
  int v[10]; /* the 'very long' array */
  int i;

  srand(time(0)); /* random seed */

  /* populating */
  for (i = 0; i != sizeof(v)/sizeof(int); ++i)
    v[i] = (rand() & 1) * 255;

  for (i = 0; i != sizeof(v)/sizeof(int); ++i)
    printf("%d ", v[i]);
  putchar('\n');


  return 0;
}

编译和执行:

pi@raspberrypi:/tmp $ gcc -pedantic -Wextra -Wall r.c
pi@raspberrypi:/tmp $ ./a.out
255 0 0 255 0 0 0 255 255 0 
pi@raspberrypi:/tmp $ ./a.out
0 255 0 0 0 255 0 255 255 0 
pi@raspberrypi:/tmp $ ./a.out
255 255 255 0 0 0 255 0 255 0