Перечисления в функции Random - PullRequest
1 голос
/ 11 июня 2019

У меня есть перечисление с определенным набором значений.Мне нужна функция для выдачи случайного вывода из набора значений enum каждый раз, когда вызывается функция.Может кто-нибудь помочь?Функция должна быть в C.

typedef enum fruits
{
 Apple     = 0x00,
 Orange    = 0x04,
 Mango     = 0x07,
 Pineapple = 0x08
}Fruits_T;

Fruits_T random_function()
{
  return (rand(Fruits_T));
}

1 Ответ

3 голосов
/ 11 июня 2019
  • Вызовите srand один раз где-нибудь в начале вашей программы.
  • Хранить все возможные значения перечисления в массиве с размером n.
  • Вызовите rand(n) и используйте результат в качестве индекса массива, чтобы вернуть сохраненное там значение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...