Заполнение массива двумя целыми числами случайным образом в C - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь заполнить очень длинный массив всего двумя значениями, каждый индекс должен иметь 0 или 255 в любом случайном порядке. Как я мог это сделать? Я ничего не мог найти об этом там.

1 Ответ

1 голос
/ 20 апреля 2019

Функция 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...