|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как правильно задать диапазон генерации случайных чисел |
|
C/C++ - Как правильно задать диапазон генерации случайных чисел
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Подскажите пожалуйста как из массива e[6]={0.7,1,1.2,1.6,2.1,2.2} с помощью функции rand() выбрать случайно только одно значение?
пробовала вот так: E1=rand()%e[6]; а оно пишет: Illegal use of floating point. что делать, подскажите!!!!!!! Очень срочно надо!!! |
|
Отправлено: 13:38, 03-07-2010 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать perfomanse, не знаю, насколько корректным будет мое решение, но все же:выбрать случайно число от 0 к 5(индексы элементов массива), и по индексу получить сам элемент.
|
------- Отправлено: 14:37, 03-07-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать perfomanse, функция rand(100) дает случайные значения от 0 до 99.
Т.о. для получения значения от 1 до 6 надо писать rand()%6+1 E1=e[rand()%6+1] P.S. работоспособность не проверял. |
------- Отправлено: 14:54, 03-07-2010 | #3 |
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Есть функция int random(int n), которая возвращает псевдослучайное число большее или равное 0 и меньшее или равное n-1 (имеется не во всех реализациях)
E1=e[random(6)]; |
------- Отправлено: 19:01, 03-07-2010 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать спасибо! сейчас попробую)
Declaration terminated incorrectly во всех двух случаях! |
|
Отправлено: 19:06, 03-07-2010 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата perfomanse:
#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(); } //--------------------------------------------------------------------------- |
|
------- Последний раз редактировалось Drongo, 03-07-2010 в 22:14. Причина: Исправлен выход за диапазон границы массива... Отправлено: 20:21, 03-07-2010 | #6 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать perfomanse, пример Drongo работает без проблем. Declaration terminated incorrectly-возможно вы неправильно что нибудь объявляете? Кусок кода был бы не лишним.
|
------- Отправлено: 22:10, 03-07-2010 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - как определить какой диапазон ip в сети ? | mitiya | Сетевые технологии | 5 | 16-12-2009 20:04 | |
C/C++ - Как правильно задать тип данных в массиве | ShadowMas | Программирование и базы данных | 4 | 18-04-2009 22:26 | |
Как увеличить диапазон адресов в DHCP? | Levin | Microsoft Windows NT/2000/2003 | 2 | 21-10-2008 15:35 | |
Генератор случайных чисел | Murrey | Хочу все знать | 3 | 22-08-2006 13:00 | |
Как изменить диапазон частот FM приёмника сот. телефона K750i ? | Zhenia | Мобильные ОС, смартфоны и планшеты | 3 | 10-08-2006 12:36 |
|