2015-02-06 2 views
0

У меня есть структуру, сформированную как этотслучайное число из заданных чисел в структуре С

struct judges 
{ 
    char surname[20]; 
    int id; 
    struct judges *wsk; 
} 

Как я могу получить случайное число из заданных идентификаторов? Например, я добавляю 3 судьи с идентификаторами 3, 7 и 253, есть ли способ получить случайное число только из этих?

+2

Построить массив, содержащие идентификаторы, генерирует случайное число в диапазоне от 0 и длину массива и использовать этот номер в качестве индекса. –

ответ

2

Выберите случайный элемент из массива этих структур и прочитайте его идентификатор.

1

Вы можете использовать srand() для установки своего случайного семени (в данном случае ID), затем используйте rand(), чтобы получить ваше случайное число для каждого судьи. также вы можете использовать [Случайный номер Glib (https://developer.gnome.org/glib/2.42/glib-Random-Numbers.html) вместо стандартной функции C.

1

Да, выберите случайное число из массива.
Но выбрать один в массиве, вы должны использовать:

rand() % arrayLength; 
//in your case: 
rand() % 3; //returns 0,1,or 2` 
0
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

main(){ 
     struct judges judge; 
     int index,i; 
     time_t t; 
     srand((unsigned int)time(&t)); 

     int ids[]={3,7,253}; 
     index=rand() % 3; 
     judge.id=ids[index]; 
} 

Вам нужно создать массив идентификаторов, а затем сгенерировать случайный индекс, используя srand() и RAND() и назначить это в поле jud.id.


, если вы хотите получить больше информации о случайных числах генерирующего http://www.tutorialspoint.com/c_standard_library/c_function_rand.htm http://www.tutorialspoint.com/c_standard_library/c_function_srand.htm

Смежные вопросы