Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
29 / 29 / 4
Регистрация: 28.08.2012
Сообщений: 154
1

Глючит rand

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

Author24 — интернет-сервис помощи студентам
В visual studio 2008 при компилировании с настройками release (F5/Ctrl+F5) все нормально, но если потом запустить полученный файл, то rand выдает одни нули, в чем может быть проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2014, 08:24
Ответы с готовыми решениями:

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

rand
#include "stdafx.h" #include <iostream> #include <conio.h> #include <cstdlib> // гениратор...

Rand()
metka: r1=rand()%2; r2=rand()%2; if(r1==a && r2==b)goto metka; else arr=='O'; ...

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

11
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:26 2
Dr. Who, код бы посмотреть.
0
29 / 29 / 4
Регистрация: 28.08.2012
Сообщений: 154
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);
}
0
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:32 4
Dr. Who, полный желательно.

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

Добавлено через 3 минуты
Вот у вас какая земля: плоская или бугристая?
Вложения
Тип файла: rar Release.rar (37.3 Кб, 10 просмотров)
0
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
04.01.2014, 08:58 8
Dr. Who, студией не пользуюсь - GNU/Linux. Просто подобный код.
0
39 / 39 / 6
Регистрация: 12.12.2013
Сообщений: 227
Записей в блоге: 1
04.01.2014, 13:01 9
Пользуйте srand(), он-то точную случайность выдает.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.01.2014, 13:16 10
Цитата Сообщение от Timur_CF Посмотреть сообщение
Пользуйте srand(), он-то точную случайность выдает.
1
New to C++
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
04.01.2014, 14:54 11
Цитата Сообщение от Timur_CF Посмотреть сообщение
Пользуйте srand(), он-то точную случайность выдает.
В первой строке же
0
29 / 29 / 4
Регистрация: 28.08.2012
Сообщений: 154
04.01.2014, 16:52  [ТС] 12
Проблемма решилась. В четвертой строке удалил
C++
1
&&b==0
Я вообще не понял зачем я его туда поставил.
0
04.01.2014, 16:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2014, 16:52
Помогаю со студенческими работами здесь

rand
srand(time(NULL)); int s = rand()%1000 +1; генерирует бред вроде 3,4,7,10,14,19,21,26,29... ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru