C/C++ - Как правильно задать диапазон генерации случайных чисел

Ответить
Аватара пользователя
perfomanse

C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение perfomanse »

Подскажите пожалуйста как из массива e[6]={0.7,1,1.2,1.6,2.1,2.2} с помощью функции rand() выбрать случайно только одно значение?

пробовала вот так:

E1=rand()%e[6]; а оно пишет: Illegal use of floating point.

что делать, подскажите!!!!!!! Очень срочно надо!!!
Аватара пользователя
crashtuak

Re: C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение crashtuak »

perfomanse, не знаю, насколько корректным будет мое решение, но все же:выбрать случайно число от 0 к 5(индексы элементов массива), и по индексу получить сам элемент.
Аватара пользователя
lxa85

Re: C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение lxa85 »

perfomanse, функция rand(100) дает случайные значения от 0 до 99.

Т.о. для получения значения от 1 до 6 надо писать rand()%6+1

E1=e[rand()%6+1]



P.S. работоспособность не проверял.
Аватара пользователя
AlexTNT

Re: C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение AlexTNT »

Есть функция int random(int n), которая возвращает псевдослучайное число большее или равное 0 и меньшее или равное n-1 (имеется не во всех реализациях)

E1=e[random(6)];
Аватара пользователя
perfomanse

Re: C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение perfomanse »

спасибо! сейчас попробую)



Declaration terminated incorrectly во всех двух случаях!
Аватара пользователя
Drongo

Re: C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение Drongo »

Цитата perfomanse:



E1=rand()%e[6]; а оно пишет: Illegal use of floating point.
C/C++ - Как правильно работать с массивами




Диапазон задан не верно, не массив с идексом задаёт диапазон, а индекс.



Код: Выделить всё

#include <iostream.h>
#include <ctime>
#include <conio.h>
void main()
{
   float e[6] = {0.7, 1, 1.2, 1.6, 2.1, 2.2};
   srand(time(0));
   int E1 = rand() % 5;
   cout<<"Random e["<<E1<<"] = "<<e[E1]<<endl<<endl;
   for(int i = 0; i < 6; i++)
      cout<<"array["<<i<<"] = "<<e[i]<<endl;
   getch();
}
//---------------------------------------------------------------------------
Аватара пользователя
crashtuak

Re: C/C++ - Как правильно задать диапазон генерации случайных чисел

Сообщение crashtuak »

perfomanse, пример Drongo работает без проблем. Declaration terminated incorrectly-возможно вы неправильно что нибудь объявляете? Кусок кода был бы не лишним.
Ответить

Вернуться в «Программирование и базы данных»