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

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

Войти
Регистрация
Восстановить пароль
 
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
#1

Почему не работает рандом? - C++

27.01.2016, 09:36. Просмотров 336. Ответов 9
Метки нет (Все метки)

Доброго времени суток господа, проблема моя заключается в том, что при попытке сгенерировать рандомное число для знака генерируется одно и то же число, предоставляю фрагмент кода ниже. p.s. гуглил, не помогло.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
srand(time(NULL));
            num1 = rand() % 10; //Random 1'st number.
            num2 = rand() % 10;// Random 2'd number.
            if (num2 == 0)
                num2 = rand() % 10; // This is because we cannot divide by zero.
            op1 = rand() % 3+1; //random operator.
            if (op1 == 1)
                op1 = '+';
            else if (op1 == 2)
                op1 = '-';
            else if (op1 == 3)
                op1 = '*';
            else(op1 == 4);
            op1 = '/';
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2016, 09:36     Почему не работает рандом?
Посмотрите здесь:

Почему рандом не выходит? - C++
Уже столько примеров просмотрел здесь и все равно не доходит. Ну что здесь не так? #include <iostream> #include <cstdlib> #include...

Не работает рандом - C++
Здравствуйте, я тут столкнулся с проблемой, хотел написать функцию рандома от x до y, x и y передаются как параметры в функцию, так вот,...

Связный список. Не работает тайпдэф и не видит рандом() - C++
Всем привет. Компилятор отмечает строчку typedef enum { false, true } bool; пишет: требуется индификатор" Кто подскажет, о каком...

Почему не работает if-else - C++
Привет, форумчане! Значицца, так, дано задание (опущу ненужное) задать диапазон массива от 1 до 20. >Если да, то выполнять следующее...

Не работает. Почему? - C++
Почему не работает данный код? #include <stdio.h> void main() { char *menu; char **order; char **Cprice; int a = 0; ...

почему не работает? - C++
решил по практиковаться с выделением динамической памяти: почему не работает код: #include <iostream> using namespace std; int...

Почему не работает gets? - C++
Хочу чтобы функция создавала массив строку. Всё работало если указывать фиксированный размер массива, но я захотел , чтобы main()...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Любитель чаепитий
2586 / 1125 / 279
Регистрация: 24.08.2014
Сообщений: 4,124
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:40     Почему не работает рандом? #2
sashesk, Ты srand(time(nullptr)); в начале main поставь, если она сейчас не там стоит.
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 09:43  [ТС]     Почему не работает рандом? #3
Именно в main или в void? попробовал и там и там, не помогло.

Добавлено через 32 секунды
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
void exersices(int a, int& right, int& wrong,int& wstreak,int& rstreak)
{
    double num1, num2, num3, result;
    char op1, op2, op3;
    
    if (a > 0 && a <= 10) // Here i create if statement to understand how many questions will be in programm and make them harder.
    {
        for (int i = 0; i < a; i++) // Here i need to create questions.
        {
            
            srand(time(NULL));
            num1 = rand() % 10; //Random 1'st number.
            num2 = rand() % 10;// Random 2'd number.
            if (num2 == 0)
                num2 = rand() % 10; // This is because we cannot divide by zero.
            op1 = rand() % 3+1; //random operator.
            if (op1 == 1)
                op1 = '+';
            else if (op1 == 2)
                op1 = '-';
            else if (op1 == 3)
                op1 = '*';
            else(op1 == 4);
            op1 = '/';
gru74ik
Модератор
Эксперт CЭксперт С++
3981 / 1728 / 193
Регистрация: 20.02.2013
Сообщений: 4,829
Записей в блоге: 21
27.01.2016, 09:43     Почему не работает рандом? #4
sashesk, возможно, вот это поможет.
GbaLog-
Любитель чаепитий
2586 / 1125 / 279
Регистрация: 24.08.2014
Сообщений: 4,124
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:44     Почему не работает рандом? #5
sashesk, srand(time(nullptr)); должна всегда в начале main стоять, чтобы рандом работал.
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 09:46  [ТС]     Почему не работает рандом? #6
makfak, поставил, не особо помогло, числа выдает рандомные в пределах указанного, но вот оператор деление.
к тому же если поставить оператор в int то все время будет выдавать число 47, я так понимаю это и есть /.
GbaLog-
Любитель чаепитий
2586 / 1125 / 279
Регистрация: 24.08.2014
Сообщений: 4,124
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:49     Почему не работает рандом? #7
sashesk, Насколько я помню, то в этой строке у вас рандом от 1 до 3.
C++
16
 op1 = rand() % 3+1; //random operator.
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 09:52  [ТС]     Почему не работает рандом? #8
makfak, да действительно, вы правы, поставил 4+1, но сути это не изменило, все так же выдает деление.
GbaLog-
Любитель чаепитий
2586 / 1125 / 279
Регистрация: 24.08.2014
Сообщений: 4,124
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:56     Почему не работает рандом? #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sashesk Посмотреть сообщение
C++
1
else(op1 == 4);
А что это за выражение-то? Может вы имели ввиду:
C++
1
else if(op1 == 4) op1 = '/';
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 10:00     Почему не работает рандом?
Еще ссылки по теме:

Почему не работает - C++
#include &lt;string.h&gt; using namespace std; int main() { string sentence; getline(cin, sentence); string a,...

Почему не работает? - C++
Почему не работет программа? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; #define N 10 ...

Почему не работает? - C++
#include &lt;iostream&gt;; #include &lt;cmath&gt;; #include &lt;vector&gt;; using namespace ::std; void main () { vector&lt;double&gt;temps; ...

Почему не работает - C++
Если по отдельности запускать — fin() и fout() они работают. int main() { fout(); system(&quot;pause&quot;); return 0; }

Почему не работает? - C++
создаю прогу, которая использует родовые функции. Вот написал код, когда две команды, которые я закоментировал закоментированы, то прога...


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

Или воспользуйтесь поиском по форуму:
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 10:00  [ТС]     Почему не работает рандом? #10
спасибо, очень глупая ошибка, уже несколько часов думаю в чем проблема может быть!
Yandex
Объявления
27.01.2016, 10:00     Почему не работает рандом?
Ответ Создать тему
Опции темы

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