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

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

Войти
Регистрация
Восстановить пароль
 
Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
#1

Глючит rand - C++

04.01.2014, 08:24. Просмотров 387. Ответов 11
Метки нет (Все метки)

В visual studio 2008 при компилировании с настройками release (F5/Ctrl+F5) все нормально, но если потом запустить полученный файл, то rand выдает одни нули, в чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 08:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Глючит rand (C++):

rand() - C++
начал учить си++, наткнулся на такую штуку... Накидал простую программку (консольную) и увидел что датчик случ. чисел выдает нифига...

rand() - C++
Как записать чтобы rand() возвращало true и false. Или подскажите другой способ. Мне нужно заполнить 3-х мерный массив.

rand от 1 до 16 - C++
Вопрос в том как в функции rand() на c++ задать диапазон чисел от 1 до 16

rand - C++
всем привет) что означает вот это строка double value = (rand()%1000)/100.0 - 5.0; и чем она отличается от этой double value =...

rand()%(-20)%(20); - C++
Нужно сорт случ числа от -20 до 20 Делаю так rand()%(-20)%(20); получаю числа от 0 до 20, а мне нужно от -20 ;

Rand() - C++
Ребята срочно nомогите , как сгенерировать с nомощью функции rand() рандомные числа 0 или 1 ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:26 #2
Dr. Who, код бы посмотреть.
Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
04.01.2014, 08:29  [ТС] #3
Пытаюсь генерировать ландшафт.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
srand( (unsigned)time( NULL ) );
for(int i = 0;i<5000;i++)
{
if((i>179)&&(i<4819&&b==0))
{
int b = rand() % 3;
if(b==0)
if(rand() % 10<4)map[i]=map[i-1]+0.5;
else
{
if(rand() % 2==1)map[i]=map[i-1]-0.5;
else map[i]=map[i-1];
if(map[i]==-(i-4819))b=1;
}
else if(b==1)
if(rand() % 10<4)map[i]=map[i-1]-0.5;
else
{
if(rand() % 2==1)map[i]=map[i-1]+0.5;
else map[i]=map[i-1];
if(map[i]==-(i-4819))b=1;
}
else map[i]=map[i-1];
if(map[i]==-(i-4819))b=1;
}
else
{
if(i<179)map[i]=-(180-i);
if(i>4819)map[i]=-(i-4819);
}
VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:32 #4
Dr. Who, полный желательно.

Добавлено через 1 минуту
Или кода слишком много?
Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
04.01.2014, 08:32  [ТС] #5
Это весь код, где используется rand. Если я сюда вставлю весь код программы, он займет много места.
VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:37 #6
Dr. Who, странно. GCC 4.7.2, подобное работает.
Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
04.01.2014, 08:42  [ТС] #7
Когда компилирую в студии все работает, а если потом отдельно из проводника файл запускаю, то нет.

Добавлено через 3 минуты
Вот у вас какая земля: плоская или бугристая?
Вложения
Тип файла: rar Release.rar (37.3 Кб, 8 просмотров)
VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:58 #8
Dr. Who, студией не пользуюсь - GNU/Linux. Просто подобный код.
Timur_CF
39 / 39 / 3
Регистрация: 12.12.2013
Сообщений: 227
Записей в блоге: 1
04.01.2014, 13:01 #9
Пользуйте srand(), он-то точную случайность выдает.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.01.2014, 13:16 #10
Цитата Сообщение от Timur_CF Посмотреть сообщение
Пользуйте srand(), он-то точную случайность выдает.
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
04.01.2014, 14:54 #11
Цитата Сообщение от Timur_CF Посмотреть сообщение
Пользуйте srand(), он-то точную случайность выдает.
В первой строке же
Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
04.01.2014, 16:52  [ТС] #12
Проблемма решилась. В четвертой строке удалил
C++
1
&&b==0
Я вообще не понял зачем я его туда поставил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2014, 16:52
Привет! Вот еще темы с ответами:

rand - C++
srand(time(NULL)); int s = rand()%1000 +1; генерирует бред вроде 3,4,7,10,14,19,21,26,29... как сделать чтобы значения были...

rand() - C++
генератор случайных чисел rand() подскажите пожелуста как работает ета штука. что означает %200, %200-100. какой принцип роботы

rand - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstdlib&gt; // гениратор случайных чисел using namespace std; ...

Rand() - C++
metka: r1=rand()%2; r2=rand()%2; if(r1==a &amp;&amp; r2==b)goto metka; else arr=='O'; Собсно-это кусок кода...


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

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

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