28.01.2020, 00:55 [+3 UTC]
в нашей команде: 4 173 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.80 (15.01.2020)
JS-v.1.35 | CSS-v.3.36

Общие новости:
06.01.2020, 22:45

Форум:
13.01.2020, 16:40

Последний вопрос:
27.01.2020, 10:05
Всего: 151487

Последний ответ:
27.01.2020, 17:36
Всего: 259690

Последняя рассылка:
26.01.2020, 22:46

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
17.12.2009, 16:52 »
Николай // Programmator
Выбрал ON, все работает. Спасибо Вам! [вопрос № 175355, ответ № 257846]
09.03.2011, 21:34 »
Киселёва Алёна aka Verena
Спасибо за подробные рекомендации! [вопрос № 182408, ответ № 266170]
30.08.2019, 00:36 »
dar777
Это самое лучшее решение! [вопрос № 196214, ответ № 278602]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 732
Gluck
Статус: Студент
Рейтинг: 333
solowey
Статус: Специалист
Рейтинг: 271

Перейти к консультации №:
 

Консультация онлайн # 72330
Раздел: • С / С++
Автор вопроса: Hunter20
Отправлена: 23.01.2007, 22:40
Поступило ответов: 4

Здравствуйте эксперты!Вопрос такой:функция rand() возвращает целые значения,а нужно получить
значения от 0.0 до 1.0.Скажите есть ли какой-нибудь способ это добиться? Заранее спасибо.

Состояние: Консультация закрыта

Здравствуйте, Hunter20!
Конечно есть!
Ф-ция rand() возвращает целые значение в диапазоне
[0,RAND_MAX], чтобы получать значения из отрезка [0,1] нуно
сделать так

float r;
r=rand();
r/=RAND_MAX;

Удачи!


Консультировал: kool
Дата отправки: 23.01.2007, 23:13

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 138661 от Nightm@re

Здравствуйте, Hunter20!

Какие проблемы, почему бы не разделить 1 на полученное от rand() значение. А чтобы не получить результат вроде 0,000005656, перед этим выполним деление по модулю, на пример на 100 или 1000:

double result;
result = 1/(rand()%100);

Не правда ли просто...
Удачи :)


Консультировал: Nightm@re
Дата отправки: 24.01.2007, 04:51

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 138673 от Lemeshev Konstantin

Здравствуйте, Hunter20!
Набольшие добавления и исправления к ответу эксперта Nightm@re.
Вариант предложенный им всегда возвращает 0, кроме этого есть вероятность ошибки типа "деление на нуль". Так что его вариант надо переписать следующим образом. Обратите внимание на точку после еденицы.

double result;
result = 1./(1+rand()%100);


Консультировал: Lemeshev Konstantin
Дата отправки: 24.01.2007, 06:23

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 138688 от Thread

Здравствуйте, Hunter20!
Это можно сделать примерно так:
int a = rand() * 100 / RAND_MAX;//Получаем целое от 0 до 100
double b = (double)a / 10;//Получаем вещественное от 0 до 10


Консультировал: Thread
Дата отправки: 24.01.2007, 07:51

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15878 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.80 от 15.01.2020
Версия JS: 1.35 | Версия CSS: 3.36