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

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

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

Реализовать генерацию случайных чисел с помощью функции srand() - C++

11.06.2016, 23:39. Просмотров 930. Ответов 22

Ребят, есть функция srand(time(NULL)). Хочу поместить ее в цикл, чтоб с клавиатуры вводить например 5, а функция возвращала на екран 5 рандомных чисел. Как это правильно записать? помогите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2016, 23:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать генерацию случайных чисел с помощью функции srand() (C++):

Реализовать генерацию случайных чисел для игры "Угадай число" - C++
Всем привет!написал код для игры. По условию компьютер должен загадать число от 1 до 100 и пользователь должен отгадать это число за 6...

сделать генерацию случайных чисел - C++
Как сделать генерацию случайных чисел??

Разработать программу, которая использует генерацию случайных чисел для создания предложений - C++
Помогите пожалуйста составить программу в С++. Задание такое: "Разработать программу, которая использует генерацию случайных чисел...

Генерация случайных чисел с использованием srand и библиотеки time может выдавать одинаковые числа, если... - C++
... если интервал случайных чисел, из которых идет отбор больше требуемого кол-ва случайных чисел? Например: есть интервал (0-2000),...

Как реализовать генерацию рандомных чисел в заданном диапазоне? - C++
Я Хочу Сделать Генерацию Рандомный Чисел В Заданном Диапазоне ну например от 100 до 120.Ошибок Компилятор не выдаёт.Но Программа Работает...

Используя функции сформировать с помощью генератора случайных чисел двумерный массив и вывести его на экран - C++
Используя функции сформировать с помощью генератора случайных чисел двумерный массив и вывести его на экран. код в С++, не могу...

22
илья9696
74 / 74 / 17
Регистрация: 15.11.2014
Сообщений: 434
Завершенные тесты: 1
11.06.2016, 23:42 #2
Она не для этого..

Добавлено через 1 минуту
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using std::cout;
using std::cin;
using std::endl;
 
void arr();
 
int main()
{
    setlocale(LC_ALL, "Russian");
    arr();
    system("pause");
    return 0;
}
 
void arr()
{
    srand(time(NULL));
 
    int arr[5], i;
 
    for(i = 0; i < 5; ++i)
    {
        arr[i] = rand() % 20;
        cout << arr[i] << " ";
    }
}
0
rikimaru2013
C++ Game Dev
2468 / 1137 / 240
Регистрация: 30.11.2013
Сообщений: 3,701
11.06.2016, 23:43 #3
Генерация рандомных чисел
0
илья9696
74 / 74 / 17
Регистрация: 15.11.2014
Сообщений: 434
Завершенные тесты: 1
11.06.2016, 23:57 #4
Для ввода с клавиатуры используйте этот код

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
31
32
33
34
35
36
37
38
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using std::cout;
using std::cin;
using std::endl;
 
void din();
 
int main()
{
    setlocale(LC_ALL, "Russian");
    din();
 
 
    system("pause");
    return 0;
}
 
void din()
{
        const int MAX_SIZE=100;    
        int n;    
        int arr[MAX_SIZE]={0};
        do
        {
        cout<<"Enter dimmension of your array: ";   
        cin>>n;
            }
        while(n<1 || n>100);
 
        for(int i=0;i<n;i++)
        {
        arr[i] = rand() % 20;
        cout<<arr[i]<<" ";
        }    
}
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
11.06.2016, 23:57  [ТС] #5
всеравно немогу вьехать
0
илья9696
74 / 74 / 17
Регистрация: 15.11.2014
Сообщений: 434
Завершенные тесты: 1
11.06.2016, 23:59 #6
В чем проблема?
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 00:05  [ТС] #7
вот
0
Миниатюры
Реализовать генерацию случайных чисел с помощью функции srand()  
илья9696
74 / 74 / 17
Регистрация: 15.11.2014
Сообщений: 434
Завершенные тесты: 1
12.06.2016, 00:13 #8
Может пора обновиться на новую студию, ну хотя бы 10.

Это ошибка компилятора.

Добавлено через 5 минут
У вас похоже есть объявленный где-то некорректно #define или #inlcude
0
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 00:16  [ТС] #9
Есть у меня такой код шифрования. нужно сделать так, чтоб рандомные числа можна было задавать с клавиатуры. Да и описание алфавита слишком длинное
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream.h>
#include <cmath>
#include <cstdlib>
#include <string>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int main() 
{
 
int chislo;
char text;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; // ÂâåäåГ*Г*Гї çì³Г*Г*ГЁГµ
srand(time(NULL));
int ran=rand()%26;
srand(time(NULL));
int rano=rand()%27; //ϳäñòГ*Г*îâêГ* ГўГЁГЇГ*äêîâèõ Г·ГЁГ±ГҐГ«
a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15,
p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // ÊîäóâГ*Г*Г*Гї êîæГ*î¿ ГЎГіГЄГўГЁ Г*ëôГ*ГўВіГІГ*
 
cout << "Vvedit kluch" << endl; // Âèâ³ä Г*Г* ГҐГЄГ°Г*Г* ïîâ³äîìëåГ*Г*Гї
cin >> chislo; // ÂâåäåГ*Г*Гї êëþ÷Г* (öèôðГ*)
cout << "kluch = "<<chislo<<", Vvedite text" << endl; // Âèâ³ä Г*Г* ГҐГЄГ°Г*Г* ïîâ³äîìëåГ*Г*Гї
cin >> text; // ÂâåäåГ*Г*Гї ГІГҐГЄГ±ГІГ*, ГїГЄГЁГ© ïîòð³áГ*Г® Г§Г*øèôðóâГ*ГІГЁ
rano+chislo;
 
if (text=='a')
cout << ran <<","<< rano << ","<< a << endl;
else if (text=='b')
cout << ran <<","<< rano << ","<< b << endl;
else if (text=='c')
cout << ran <<","<< rano << ","<< c << endl;
else if (text=='d')
cout << ran <<","<< rano << ","<< d << endl;
else if (text=='e')
cout << ran <<","<< rano << ","<< e << endl;
else if (text=='f')
cout << ran <<","<< rano << ","<< f << endl;
else if (text=='g')
cout << ran <<","<< rano << ","<< g << endl;
else if (text=='h')
cout << ran <<","<< rano << ","<< h << endl;
else if (text=='i')
cout << ran <<","<< rano << ","<< i << endl;
else if (text=='j')
cout << ran <<","<< rano << ","<< j << endl;
else if (text=='k')
cout << ran <<","<< rano << ","<< k << endl;
else if (text=='l')
cout << ran <<","<< rano << ","<< l << endl;
else if (text=='m')
cout << ran <<","<< rano << ","<< m << endl;
else if (text=='n')
cout << ran <<","<< rano << ","<< n << endl;
else if (text=='o')
cout << ran <<","<< rano << ","<< o << endl;
else if (text=='p')
cout << ran <<","<< rano << ","<< p << endl;
else if (text=='q')
cout << ran <<","<< rano << ","<< q << endl;
else if (text=='r')
cout << ran <<","<< rano << ","<< r << endl;
else if (text=='s')
cout << ran <<","<< rano << ","<< s << endl;
else if (text=='t')
cout << ran <<","<< rano << ","<< t << endl;
else if (text=='u')
cout << ran <<","<< rano << ","<< u << endl;
else if (text=='v')
cout << ran <<","<< rano << ","<< v << endl;
else if (text=='w')
cout << ran <<","<< rano << ","<< w << endl;
else if (text=='x')
cout << ran <<","<< rano << ","<< x << endl;
else if (text=='y')
cout << ran <<","<< rano << ","<< y << endl;
else if (text=='z')
cout << ran <<","<< rano << ","<< z << endl;
else
cout << "Vvedit bykvy" << endl;
system ("pause") ;
return 0;
}
0
nmcf
5783 / 5094 / 1743
Регистрация: 14.04.2014
Сообщений: 20,850
12.06.2016, 08:46 #10
srand() вызывается 1 раз в начале программы. Здесь уже были те, кто пытался многократными вызовами получить числа "ещё случайнее".

Добавлено через 2 минуты
Числа и буквы - в массивы или в std::map.
1
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 11:56  [ТС] #11
Приделал етот цикл к коду. Тепер при выборе с клавиатуры вылетают только одинаковые цифры, а не рандоммные
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <time.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    const int MAX_SIZE=100;  
    char text;
int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15,
p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // Введення змінних, kодування кожної букви алфавіта
        int cluch;    
        int arr[MAX_SIZE]={0};
        do
        {
        cout << "Vvedit kluch" << endl; // Вивід на екран повідомлення   
        cin>>cluch;
        cout << "kluch = "<<cluch<<", Vvedite text" << endl; // Вивід на екран повідомлення
        cin >> text; // Введення текста, який потрібно зашифрувати
            }
        while(cluch<1 || cluch>100);
 
        for(int ii=0;ii<cluch;ii++)
        {
            srand(time(NULL));
        arr[ii] = rand() % 26;
        cout<<arr[ii]<<", ";
        }
    
if (text=='a')
cout << a << endl;
else if (text=='b')
cout << b << endl;
else if (text=='c')
cout << c << endl;
else if (text=='d')
cout << d << endl;
else if (text=='e')
cout << e << endl;
else if (text=='f')
cout << f << endl;
else if (text=='g')
cout << g << endl;
else if (text=='h')
cout << h << endl;
else if (text=='i')
cout << i << endl;
else if (text=='j')
cout << j << endl;
else if (text=='k')
cout << k << endl;
else if (text=='l')
cout << l << endl;
else if (text=='m')
cout << m << endl;
else if (text=='n')
cout << n << endl;
else if (text=='o')
cout << o << endl;
else if (text=='p')
cout << p << endl;
else if (text=='q')
cout << q << endl;
else if (text=='r')
cout << r << endl;
else if (text=='s')
cout << s << endl;
else if (text=='t')
cout << t << endl;
else if (text=='u')
cout << u << endl;
else if (text=='v')
cout << v << endl;
else if (text=='w')
cout << w << endl;
else if (text=='x')
cout << x << endl;
else if (text=='y')
cout << y << endl;
else if (text=='z')
cout << z << endl;
else
cout << "Vvedit bykvy" << endl;
system ("pause") ;
return 0;
}
0
nmcf
5783 / 5094 / 1743
Регистрация: 14.04.2014
Сообщений: 20,850
12.06.2016, 12:28 #12
Ещё раз прочитай мой текст. Один раз srand() вызывается в начале.
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
int main()
{
    srand(time(NULL));
 
    setlocale(LC_ALL, "Russian");
    const int MAX_SIZE=100;  
    char text;
int a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=11,l=12,m=13,n=14,o=15,
p=16,q=17,r=18,s=19,t=20,u=21,v=22,w=23,x=24,y=25,z=26; // Введення змінних, kодування кожної букви алфавіта
        int cluch;    
        int arr[MAX_SIZE]={0};
        do
        {
        cout << "Vvedit kluch" << endl; // Вивід на екран повідомлення   
        cin>>cluch;
        cout << "kluch = "<<cluch<<", Vvedite text" << endl; // Вивід на екран повідомлення
        cin >> text; // Введення текста, який потрібно зашифрувати
            }
        while(cluch<1 || cluch>100);
 
        for(int ii=0;ii<cluch;ii++)
        {
            arr[ii] = rand() % 26;
            cout<<arr[ii]<<", ";
        }
1
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 14:25  [ТС] #13
Заработало) Спасибо) А как реализовать расшифровку в масиве? Чтоб обойтись без большого количества IF?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
if (text=='a')
cout << a << endl;
else if (text=='b')
cout << b << endl;
else if (text=='c')
cout << c << endl;
else if (text=='d')
cout << d << endl;
else if (text=='e')
cout << e << endl;
else if (text=='f')
cout << f << endl;
else if (text=='g')
cout << g << endl;
else if (text=='h')
cout << h << endl;
else if (text=='i')
cout << i << endl;
else if (text=='j')
cout << j << endl;
else if (text=='k')
cout << k << endl;
else if (text=='l')
cout << l << endl;
else if (text=='m')
cout << m << endl;
else if (text=='n')
cout << n << endl;
else if (text=='o')
cout << o << endl;
else if (text=='p')
cout << p << endl;
else if (text=='q')
cout << q << endl;
else if (text=='r')
cout << r << endl;
else if (text=='s')
cout << s << endl;
else if (text=='t')
cout << t << endl;
else if (text=='u')
cout << u << endl;
else if (text=='v')
cout << v << endl;
else if (text=='w')
cout << w << endl;
else if (text=='x')
cout << x << endl;
else if (text=='y')
cout << y << endl;
else if (text=='z')
cout << z << endl;
else
cout << "Vvedit bykvy" << endl;
system ("pause") ;
return 0;
И как реализовать расшифровку слов, а не только букв?
0
nmcf
5783 / 5094 / 1743
Регистрация: 14.04.2014
Сообщений: 20,850
12.06.2016, 14:39 #14
Тебе хватит выражения
C++
1
int x = text - 'a' + 1
1
Roman_Kozan
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 28
12.06.2016, 14:51  [ТС] #15
а можно поподробнее?

Добавлено через 3 минуты
разобрался) спасибо большое)) как сделать фразы?)
0
12.06.2016, 14:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2016, 14:51
Привет! Вот еще темы с ответами:

Как реализовать генерацию псевдослучайных чисел по равномерному и гауссовому распределениям? - C++
Собственно, вопрос в названии. Как реализовать генерацию псевдослучайных чисел по равномерному и гауссовому распределениям? (Диапазон...

Реализовать генерацию новых псевдослучайных чисел при обращении к методу - C++
Проблема заключается вот в чем: Я обращаюсь к методу &quot;Inputrandom&quot; 2 раза, но он генерирует 2 раза одно и тоже. Как реализовать генерацию...

Записать в файл f N целых чисел, полученных с помощью генератора случайных чисел. - C++
Помогите пожалуйста с задачей. Записать в файл f N целых чисел, полученных с помощью генератора случайных чисел. Заполнить файл g...

Формирование массива трехзначных чисел с помощью датчика случайных чисел и вывода его на экран - C++
Создать две функции для работы с массивом: • формирование массива трехзначных чисел с помощью датчика случайных чисел и вывода его на...


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

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

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