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