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

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

20.03.2018, 11:48. Показов 18273. Ответов 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,380
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
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru