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

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

Восстановить пароль Регистрация
 
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 09:36     Почему не работает рандом? #1
Доброго времени суток господа, проблема моя заключается в том, что при попытке сгенерировать рандомное число для знака генерируется одно и то же число, предоставляю фрагмент кода ниже. 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++ почему не работает?
Почему не работает? C++
Почему работает? C++
C++ Почему не работает if-else
C++ Почему не работает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Не Эксперт C++
1429 / 615 / 173
Регистрация: 24.08.2014
Сообщений: 2,488
Записей в блоге: 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
Модератор
 Аватар для gru74ik
3068 / 1313 / 164
Регистрация: 20.02.2013
Сообщений: 3,744
Записей в блоге: 15
27.01.2016, 09:43     Почему не работает рандом? #4
sashesk, возможно, вот это поможет.
GbaLog-
Не Эксперт C++
1429 / 615 / 173
Регистрация: 24.08.2014
Сообщений: 2,488
Записей в блоге: 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-
Не Эксперт C++
1429 / 615 / 173
Регистрация: 24.08.2014
Сообщений: 2,488
Записей в блоге: 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-
Не Эксперт C++
1429 / 615 / 173
Регистрация: 24.08.2014
Сообщений: 2,488
Записей в блоге: 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++ Почему рандом не выходит?
Почему не работает cin.clear() и как работает sync()? C++
Не работает рандом C++

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

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

Текущее время: 16:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru