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

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

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

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

27.01.2016, 09:36. Просмотров 421. Ответов 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 = '/';
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2016, 09:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не работает рандом? (C++):

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

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

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

Почему выводится в виде таблицы и почему не работает сортировка - C++
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы комнат? hotel.h #include...

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Почему в динамическом массиве не работает то, что работает со статическим? - C++
Программа зависает #include<iostream> #include<stdlib.h> #include<time.h> using namespace std; int main() { ...

9
GbaLog-
Любитель чаепитий
3078 / 1417 / 342
Регистрация: 24.08.2014
Сообщений: 5,040
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:40 #2
sashesk, Ты srand(time(nullptr)); в начале main поставь, если она сейчас не там стоит.
0
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 = '/';
0
gru74ik
Эксперт CЭксперт С++
4273 / 1861 / 198
Регистрация: 20.02.2013
Сообщений: 4,996
Записей в блоге: 22
27.01.2016, 09:43 #4
sashesk, возможно, вот это поможет.
1
GbaLog-
Любитель чаепитий
3078 / 1417 / 342
Регистрация: 24.08.2014
Сообщений: 5,040
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:44 #5
sashesk, srand(time(nullptr)); должна всегда в начале main стоять, чтобы рандом работал.
1
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 09:46  [ТС] #6
makfak, поставил, не особо помогло, числа выдает рандомные в пределах указанного, но вот оператор деление.
к тому же если поставить оператор в int то все время будет выдавать число 47, я так понимаю это и есть /.
0
GbaLog-
Любитель чаепитий
3078 / 1417 / 342
Регистрация: 24.08.2014
Сообщений: 5,040
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:49 #7
sashesk, Насколько я помню, то в этой строке у вас рандом от 1 до 3.
C++
16
 op1 = rand() % 3+1; //random operator.
1
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 09:52  [ТС] #8
makfak, да действительно, вы правы, поставил 4+1, но сути это не изменило, все так же выдает деление.
0
GbaLog-
Любитель чаепитий
3078 / 1417 / 342
Регистрация: 24.08.2014
Сообщений: 5,040
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:56 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sashesk Посмотреть сообщение
C++
1
else(op1 == 4);
А что это за выражение-то? Может вы имели ввиду:
C++
1
else if(op1 == 4) op1 = '/';
1
sashesk
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 6
27.01.2016, 10:00  [ТС] #10
спасибо, очень глупая ошибка, уже несколько часов думаю в чем проблема может быть!
0
27.01.2016, 10:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 10:00
Привет! Вот еще темы с ответами:

Почему в библиотеке не работает то, что спокойно работает в программе? - C++
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game Maker. Хотел поэкспериментировать. Как всегда, у...

Почему не работает cin.clear() и как работает sync()? - C++
#include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; char*input(char*ch,int&amp;n){ cin.getline(ch,20); //cin.sync(); ...

Не могу понять почему не работает (или правильно не работает) - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; int i,j; cout&lt;&lt;&quot;nachalnya...

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? - C++
Есть такая функция: void Array::SetStartIndexes(sz3_Arr_t *array) { start_index.reserve(array-&gt;size()); ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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