Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.77
vasja_pupkin
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 6
#1

Функция rand() - C++

03.11.2011, 13:48. Просмотров 6576. Ответов 14
Метки нет (Все метки)

Добрый день.
Написал следующую функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <stdlib.h>
using namespace std;
int main (int argc, char*argv[])
{
int x = 0, count = 0;
while (count != 10)
{
x = 0 + rand() % 10;
cout <<x<<"\n";
count++;
}
}
В принципе всё отлично, всё устраивает, но есть одно но, мне нужен диапазон чисел от 0,01 до 0,99, если я меняю тип int x = 0 на double x = 0 и в строке x = 0 + rand() % 10; пишу x = 0,01 + rand() % 1,00; - компилятор мне отвечает, что справа находится тип double и, соответственно, аварийный останов.
Скажите пожалуйста, что мне исправить чтобы я мог использовать этот x = 0,01 + rand() % 1,00; диапазон?
Спасибо.
P.S.: А если я пишу x = 0,01 + rand() % 1;, то компилятор не ругается, но выводит 10-ть раз 0,01.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2011, 13:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция rand() (C++):

Функция - rand - C++
Здравствуйте. Проблема - нужно сгенерировать случайное число из области чисел введённых в переменную. Допустим, я создаю переменную: ...

Функция rand() - C++
Здравствуйте, имеется код с реализацией алгоритма прямого поиска и я не могу понять как задается длина строки и подстроки, в частности...

Функция rand - C++
Помогите написать программу) В цикле, используя функцию rand генерировать числа в диапазоне от 0 до 9. Из этих чисел составить цеиое...

Функция rand(); - C++
Нужно чтобы функция rand(); выдавала значения в заданном интервале то есть к примеру от 230 до 233 нужно чтобы выдавало числа 230 ...

Функция rand() - C++
Здравствуйте, где я могу посмотреть код функции rand()? И подобных функций на генерирование псевдослучайных чисел?

функция rand() - C++
функция rand(). Расскажите об этой функции плиз. Смотрел в инете но везде какойто бред. Как с её помощью можно задать последовательность...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mihai
8 / 8 / 0
Регистрация: 19.12.2010
Сообщений: 26
03.11.2011, 13:54 #2
rand() выводит только целые числа.
можете сделать так
C++
1
2
double x = 1 + rand() % 99;
x = x/100;
1
vasja_pupkin
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 6
03.11.2011, 14:02  [ТС] #3
Спасибо работает, но выводит всегда 10-ть одинаковых последовательностей.
0,42; 0,44; 0,63; 0,41; 0,6; 0,45; 0,13; 0,57; 0,13; 0,63.
Почему так?
0
Mihai
8 / 8 / 0
Регистрация: 19.12.2010
Сообщений: 26
03.11.2011, 14:13 #4
так и должно быть. если вы хотите чтобы случайные числа отличались при каждом запуске программы нужен srand(), где-нибудь вначале программы.

например так:
C++
1
srand ( time(NULL) );
вы можете передать любое беззнаковое целое. обычно используют время с начала запуска программы.
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
03.11.2011, 14:16 #5
Цитата Сообщение от Mihai Посмотреть сообщение
обычно используют время с начала запуска программы.
time возвращает не время с начала запуска программы, а время с начала Эпохи
0
Mihai
8 / 8 / 0
Регистрация: 19.12.2010
Сообщений: 26
03.11.2011, 14:29 #6
Цитата Сообщение от Nameless One Посмотреть сообщение
time возвращает не время с начала запуска программы, а время с начала Эпохи
поправка принимается. time(NULL) вернёт количество секунд прошедших с 1 января, 1970.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
03.11.2011, 15:47 #7
Дело не в том, что rand() развращает целое число, а в том, что операция % работает только для целых чисел.
0
Mihai
8 / 8 / 0
Регистрация: 19.12.2010
Сообщений: 26
03.11.2011, 15:58 #8
я привёл правильный код.

Не по теме:

не придирайтесь к словам

0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
03.11.2011, 16:03 #9
Цитата Сообщение от Mihai Посмотреть сообщение
не придирайтесь к словам
Если не придираться, то ТС не правильно поймет, почему у него не работала программа.
1
vasja_pupkin
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 6
03.11.2011, 17:17  [ТС] #10
Попробовал использовать
C++
1
srand ( time(NULL) );
Пишет "time: идентификатор не найден".
Да, и кто такой ТС?
0
ExcellencE
20 / 20 / 2
Регистрация: 22.08.2011
Сообщений: 79
03.11.2011, 17:22 #11
Цитата Сообщение от vasja_pupkin Посмотреть сообщение
Попробовал использовать
C++
1
srand ( time(NULL) );
Пишет "time: идентификатор не найден".
C++
1
#include <time.h>
0
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
03.11.2011, 17:24 #12
подключите #include <time.h>

не успел)
0
vasja_pupkin
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 6
03.11.2011, 17:28  [ТС] #13
Извините, вопрос, про идентификатор снимаю, разобрался, библиотеку забыл подключить, но про ТС хотелось бы всё таки выяснить.
Спасибо всем)
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
03.11.2011, 17:49 #14
ТС = ТопикСтартер
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
03.11.2011, 17:52 #15
Цитата Сообщение от vasja_pupkin Посмотреть сообщение
Пишет "time: идентификатор не найден".
#include <ctime>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2011, 17:52
Привет! Вот еще темы с ответами:

функция rand() - C++
У меня такой вопрос, как можно сделать искать рандомные числа за исключением определенных! Допустим нахожу рандомное число от 0 до 10,...

Функция rand() - C++
Сделал задания: Комп должен угадать число какое я задал в уме. В диапазоне от 1 до 100 . void Ex() { srand(time(NULL)); int first =...

Функция rand() - C++
как с помощью этой функции заполнить массив случайными числами? знаю.что нужно подключить библиотеку &lt;time.h&gt; ,а дальше?...

Функция rand() - C++
Помогите, как сделать так что бы функция random при каждом запросе к ней генерировала случайное число ( сейчас все 3 числа одинаковые) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.11.2011, 17:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru