| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Макрос для рэндома. |
| Автор: iddqd 24.12.2006, 22:40 | ||||
| Требуется написать макрос, который принимает два параметра (диапазон) и формирует случайным образом (функция стандартной библиотеки – rand, заголовочный файл <cstdlib>) число в заданном диапазоне. Никак не могу разобраться с этим. В МСДН есть такой пример:
Вроде то, что надо. Пишу макрос:
Возвращает муть. Как быть? |
| Автор: comp 24.12.2006, 22:43 |
| #define GetRandom(a, b) ((a) + ((double)(b) * rand() / (RAND_MAX + 1.0))) |
| Автор: Daevaorn 24.12.2006, 22:44 |
это зачем? в примере же написано RAND_MAX, так и оставь |
| Автор: iddqd 24.12.2006, 22:49 | ||||
| comp, Ваш вариант не работает. Мой:
Часто генерирует правильно, но, например, для 100 - 103 генерирует 109. весь код такой:
Чтоб удобней было проверять. |
| Автор: witex 24.12.2006, 22:51 |
| ваабще я макросами не увлекаюсь! но ваабще нахождения дипозона выглядит так! x = rand()%(max-min+1)+min |
| Автор: iddqd 24.12.2006, 22:54 |
| witex, это тоже работает через раз. Даже с большими диапазонами. |
| Автор: Daevaorn 24.12.2006, 23:10 | ||
И как, выходит? Добавлено @ 23:14
|
| Автор: iddqd 24.12.2006, 23:18 |
| Daevaorn, ну это я так написал)) Есесна переходит на метку. Понимаете, дело в том, что мне надо именно макросом. Ну вот макросом и никак иначе :\ |
| Автор: Daevaorn 24.12.2006, 23:23 | ||
|
| Автор: iddqd 24.12.2006, 23:31 |
| Daevaorn, гениально. +1 в репутацию и огромное спасибо. |