![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| iddqd |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Требуется написать макрос, который принимает два параметра (диапазон) и формирует случайным образом (функция стандартной библиотеки – rand, заголовочный файл <cstdlib>) число в заданном диапазоне.
Никак не могу разобраться с этим. В МСДН есть такой пример:
Вроде то, что надо. Пишу макрос:
Возвращает муть. Как быть? -------------------- |
||||
|
|||||
| comp |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 15.11.2006 Репутация: нет Всего: 1 |
#define GetRandom(a, b) ((a) + ((double)(b) * rand() / (RAND_MAX + 1.0)))
|
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| iddqd |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
comp, Ваш вариант не работает.
Мой:
Часто генерирует правильно, но, например, для 100 - 103 генерирует 109. весь код такой:
Чтоб удобней было проверять. -------------------- |
||||
|
|||||
| witex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 0 Всего: 4 |
ваабще я макросами не увлекаюсь! но ваабще нахождения дипозона выглядит так!
x = rand()%(max-min+1)+min --------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
witex, это тоже работает через раз. Даже с большими диапазонами.
-------------------- |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Daevaorn, ну это я так написал))
Есесна переходит на метку. Понимаете, дело в том, что мне надо именно макросом. Ну вот макросом и никак иначе :\ -------------------- |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
|
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Daevaorn, гениально.
+1 в репутацию и огромное спасибо. -------------------- |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |