Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/88: Рейтинг темы: голосов - 88, средняя оценка - 4.59
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485

Присвоение переменной случайного значения

20.03.2018, 11:48. Показов 18254. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел такой рабочий код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
 
int main(int argc, char* argv[])
 
{
    
    srand(time(0)); // автоматическая рандомизация
    cout << "Random = " << rand() % 100 << endl;
    system("pause");
    return 0;
}
Выводит на экран рандомное число от 1 до 100. Как присвоить этот рандом какой то переменной ?
Ну чтобы можно было с ней сравнивать какое то другое введенное с клавы число.
Пишу в Visual Studio C ++ 2017
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2018, 11:48
Ответы с готовыми решениями:

Присвоение переменной а значения случайного числа (random)
Здравствуйте. Задача написать программу для проверки знания таблиц умножения. Rand-омом виводятся два числа (a,b) на консоль. Как присвоить...

Присвоение значения переменной из функции
Доброго времени суток!!! Например в Pascal можно так: procedure myinc(var a:integer); begin a:=a+1; end; begin ...

Присвоение значения переменной в классе
возможно ли присвоение значения переменной в классе? class xxx { public : void rrr(); public : int x=5; // ??? };

20
 Аватар для Лемур
17 / 17 / 13
Регистрация: 06.02.2014
Сообщений: 114
20.03.2018, 12:21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <ctime>
 
int main()
{
  srand(time(0));
  int k;
  std::cin>>k;     //кол-во элементов в массиве
  int *arr = new int[k];     //создаем динамический массив
  for (int i = 0; i < k; i++)      //начинаем цикл по заполнению массива
    {
        arr[i] = rand()% 100;      //каждый элемент создается рандомно
        std::cout << arr[i] << " ";       //выводим каждый i-тый элемент массива
    }
    delete [] arr;     //очищаем динамический массив
    return 0;
}
Ну и работай с "arr[i]"
0
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
20.03.2018, 12:50  [ТС]
Ну во первых ты не понял задачу. Нам не нужен список рандомных чисел. Хотел поробовать написать игру простейшую как на бейсике писал. Компутер 1 раз генерирует случайное число - а дальше мы вводим числа от 1 до 100 и он сравнивает и говорит оно меньше или больше загаданного. Массив не нужен, потому что он сравнивает по очереди каждое введенное число и рандом остается при этом постоянным, сгенерированным в самом начале. Когда введенное число = рандому, который сгенерировал комп игра заканчивается.
Ты в Borland пишешь ? Что-то у меня одни ошибки выдает при компиляции твоего кода в Visual Studio C++.
0
 Аватар для vlisp
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,375
20.03.2018, 13:05
C++
1
int i = rand()% 100
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
20.03.2018, 13:12
Цитата Сообщение от mrden777 Посмотреть сообщение
от 1 до 100
C++
1
int x = 1 + rand() % 101;
Добавлено через 32 секунды
vlisp, у Вас от 0 до 99
0
 Аватар для Лемур
17 / 17 / 13
Регистрация: 06.02.2014
Сообщений: 114
20.03.2018, 13:14
mrden777, а какая была задача? оО
писал в код блоксе
ты можешь доработать код под свою "игру", в нем все есть.
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
20.03.2018, 13:15
LemurDC, ТС выводил рандом на экран, а хочет, чтобы это значение попадало в переменную
0
 Аватар для Лемур
17 / 17 / 13
Регистрация: 06.02.2014
Сообщений: 114
20.03.2018, 13:19
Hitoku, так можно удалить строку с выводом массива и сравнивать введенное значение числа с элементом массива
или это неправильно?
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
20.03.2018, 13:21
Лучший ответ Сообщение было отмечено mrden777 как решение

Решение

mrden777, вот вариант для
Цитата Сообщение от mrden777 Посмотреть сообщение
присвоить этот рандом какой то переменной ?
Ну чтобы можно было с ней сравнивать какое то другое введенное с клавы число.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
 
int main() {
    srand(time(NULL));
    int x, n; std::cout << "N = "; std::cin >> n;
    x = 1 + rand() % 101;
    std::cout << "x = " << x << "; ";
    if (x > n) std::cout << "X > N\n";
    else if (x == n) std::cout << "X = N\n";
    else std::cout << "X < N\n";
    system("pause");
    return 0;
}
Добавлено через 1 минуту
LemurDC, можно-то можно но задумки ТС скрыты от нас за завесой тайны, так что сложно ответить наверняка
2
 Аватар для Лемур
17 / 17 / 13
Регистрация: 06.02.2014
Сообщений: 114
20.03.2018, 13:53
Hitoku, =) спасибо за мудрость)
0
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
20.03.2018, 14:16  [ТС]
Спс, код работает но цикл заканчивается раньше чем отгадано число =) И загаданное число необязательно на экран выводить =) Потом я не понял выражение X = N\n по идее же n = N. Мы должны сравнивать "x" и "n" до тех пор пока они не будут равны. в бейсике например можно было без цикла отправить выполнять код на начало программы, а тут не знаю как сделать
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
20.03.2018, 18:12
Цитата Сообщение от mrden777 Посмотреть сообщение
а тут не знаю как сделать
Если Вы более детально опишете задачу, скорее всего Вам помогут. А гадать на кофейной гуще здесь ни у кого желания нет
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
20.03.2018, 18:15
mrden777, цикла тут нет. Пример просто для демонстрации того, как сравнивать числа и как задавать переменной рандомное значение. О цикле и угадывании рандомного числа речи не было.
Цитата Сообщение от mrden777 Посмотреть сообщение
Как присвоить этот рандом какой то переменной ?
Ну чтобы можно было с ней сравнивать какое то другое введенное с клавы число.
0
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
20.03.2018, 18:17  [ТС]
Короче ИГРА получилась УРА ! =) Но есть маленькая проблемка - Сообщение о проигрыше иногда вылезает вместе с сообщением о выигрыше - Как бы его отделить ? =)
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
using namespace std;
 
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
/////////////////////////////////////////////////////////////////
int main()
{
    int n;
    int x;
    int count = 0;
 
    srand(time(0));
    n = rand() % 10 + 1;
 
    cout << "SEA FIGHTER" << endl
        << "YOU HAVE 5 ROCKET" << endl;
        
    do
    {
        cout << "\n Plz set coordinate enemy ship \n\t-> ";
        cin >> x;
        if (x > n) cout << "P E R E L E T";
        if (x < n) cout << "N E D O L E T";
        if (x == n) cout << "ENEMY SHIP KILLED! CONGRATULATIONS ! ";
        count++;
    } while (x != n && count < 5);
    cout << "E M T Y  ROCKET - YOU LOOSE ! ";
 
    system("pause");
    return 0;
}
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
20.03.2018, 18:22
Цитата Сообщение от mrden777 Посмотреть сообщение
cout << "E M T Y ROCKET - YOU LOOSE ! ";
Оно у вас будет выводится всегда. Не важно, выигрыш или проигрыш.
Заведите, например, bool переменную, которая будет присваивать false/true в случае выигрыша, и выводите свое сообщение, при условии, что в переменной true/false (как настроите)
0
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
20.03.2018, 18:25  [ТС]
а можно его в какое то условие запехать чтобы оно не появлялось просто так ?
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
20.03.2018, 18:31
Лучший ответ Сообщение было отмечено mrden777 как решение

Решение

mrden777, как пример:

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
using namespace std;
 
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
/////////////////////////////////////////////////////////////////
int main()
{
    int n;
    int x;
    int count = 0;
 
    srand(time(0));
    n = rand() % 10 + 1;
 
    cout << "SEA FIGHTER" << endl
        << "YOU HAVE 5 ROCKET" << endl;
    
    bool isWin = false;    
    do
    {
        cout << "\n Plz set coordinate enemy ship \n\t-> ";
        cin >> x;
        if (x > n) cout << "P E R E L E T";
        if (x < n) cout << "N E D O L E T";
        if (x == n)
        {
            cout << "ENEMY SHIP KILLED! CONGRATULATIONS ! ";
            isWin = true;
        }
        count++;
    } while (x != n && count < 5);
    if (!isWin) cout << "E M T Y  ROCKET - YOU LOOSE ! ";
 
    system("pause");
    return 0;
}
1
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
20.03.2018, 18:44  [ТС]
Выдает ошибку по <stadfx.h> при компиляции Библиотеку включил, но непомогло
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
20.03.2018, 23:08
Лучший ответ Сообщение было отмечено mrden777 как решение

Решение

mrden777, А как ты до этого запускал? Создай новый проект пустой, в нем создай .cpp и сунь свой код.
P.s. только лишнюю строку с namespace удали, я копировал твой код и даже не заметил ее.
1
 Аватар для mrden777
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
20.03.2018, 23:36  [ТС]
Да согласен, заработало все чётко =) Только я маневр не понял с if (!isWin) обычно != считают как знак НЕ РАВНО а что "!" перед той пременной значит ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2018, 23:36
Помогаю со студенческими работами здесь

Как происходит присвоение значения переменной?
Здравствуйте. Какие способы присвоения значения существуют? Расскажите пожалуйста, как присваиваются значения при присвоении из...

Присвоение переменной значения из текстового файла
Доброго дня. есть текстовый файл, подскажите, пожалуйста, как присвоить переменной значение, которое находится в первой строчке 13-е по...

Присвоение значения переменной vector of tuple
Elevator::current_floor = 8; std::get&lt;1&gt;(loaded_users)= Elevator::current_floor; Elevator::current_floor = 17; for (const...

Присвоение значения переменной класса через конструктор
#include &lt;iostream&gt; using namespace std; class Help { int userID; public: Help(int id) {int userID = id;} ~Help()...

Присвоение переменной функции
Кто знает, как сделать, чтобы статическая переменная класса/структуры была по умолчанию равна значению функции? Например: class MyClass {...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru