Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 4

Разное поведение программы в консоли и в Visual Studio 2010

13.06.2013, 15:16. Показов 1188. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Я новичок - изучаю С++ третий день. Во время выполнения упражнения с функцией rand() столкнулся с проблемой. Перед ее описанием изложу код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cstdlib> 
using namespace std;
 
int main()
{
    int guess;
    int magic;
    magic = rand();
    cout << "Enter your variant of magic number: ";
    cin >> guess;
    if (magic==guess) cout << "You win!";
    else cout << "You are wrong";
}
При запуске этой программы через консоль мне, как и полагается в соответствии с правилом низкой вероятности, выдается сообщение "You are wrong". В то же время при запуске через Visual Studio 2010 я все время угадываю число, то есть при вводе любого числа мне выдается сообщение "You win!", хотя с рациональной точки зрения это - ошибка. Как объяснить эту ситуацию?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2013, 15:16
Ответы с готовыми решениями:

Юникод в консоли visual studio 2010?
Добрый вечер. Сижу, читаю в интернете, но никак не могу найти решение некоторой проблемы. Предположим, в таблице аски нет того символа,...

ошибки компиляции консоли с++ и zlib 1.1.3, visual studio 2010
Привет, скачал в интернете исходники zlib 1.1.3 (знаю, что последняя версия гораздо больше, но мне нужна именно эта) и в microsoft visual...

Visual studio 2010 не обновляет вывод программы
создаю приложение windows forms закидываю в форму кнопочки и т.д, проверяю F5 - все рабодаю, корректирую код, нажимаю F5 , а он изменения...

7
16 / 16 / 20
Регистрация: 15.03.2012
Сообщений: 106
13.06.2013, 15:31
запустил много раз в VS 2010, ни разу не угадал
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 4
13.06.2013, 15:36  [ТС]
Теперь и я перестал угадывать - это при том, что, кажется, никаких изменений не вносил.
0
16 / 16 / 20
Регистрация: 15.03.2012
Сообщений: 106
13.06.2013, 15:40
как вариант подключить это
C++
1
#include<ctime>
и в main написать так
C++
1
srand(time(NULL));
в принципе у меня и без этого не угадывается
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 4
13.06.2013, 15:49  [ТС]
Вопрос не по теме: интересно, как в этой программе можно сузить диапазон возможных чисел? Верно ли я понимаю, что функцию rand() нельзя модифицировать, и ее аналог придется писать заново, учитывая, что rand() - часть библиотеки VS?
0
16 / 16 / 20
Регистрация: 15.03.2012
Сообщений: 106
13.06.2013, 15:52
генерируются числа от 1 до 5
C++
1
magic = rand() % 5 + 1;
аналогично можно сделать и другой интервал
5 - правая граница интервал
1 - левая
1
 Аватар для Мимино
191 / 161 / 35
Регистрация: 22.05.2013
Сообщений: 455
Записей в блоге: 1
13.06.2013, 15:56
Цитата Сообщение от Charon666 Посмотреть сообщение
Вопрос не по теме: интересно, как в этой программе можно сузить диапазон возможных чисел? Верно ли я понимаю, что функцию rand() нельзя модифицировать, и ее аналог придется писать заново, учитывая, что rand() - часть библиотеки VS?
1. Функция rand() генерирует случайное число только 1 раз. При повторных запусках программы это число меняться не будет. Чтобы получать разные числа, необходимо использовать метод. который описал Nikolai699.
2. "сузить" диапазон можно операцией вычисления остатка. Например
C++
1
rand() % 20
генерирует случайное число от 0 до 19

C++
1
(rand() % 20) - 10
генерирует случайное число от -10 до 9
и т.д.
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 4
13.06.2013, 15:59  [ТС]
Благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2013, 15:59
Помогаю со студенческими работами здесь

Запуск программы с расширением .сpp с помощью Visual studio 2010
У меня есть файл с текстом программы с расширением .сpp &quot;С++ Source&quot; открываю с помощью Visual studio 2010. Но запустить не...

Как в Visual Studio 2010 развернуть окно выполнения программы на весь экран?
Создаю в Студии 2010 консольное приложение. Запускаю программу F5. Появляется маленькое чёрное окошко и в нём выводятся нужные мне числа. У...

Visual Studio странное поведение
Почему данный код компилируется и работает в Visual Studio? Ведь мы берем ссылку от временного объекта. #include &lt;iostream&gt; ...

Visual Studio 2010
Кто нибудь пробовал??? Хочу узнать отзывы...

Visual studio 2010
Господа, подскажите, где нужно полазить в опциях студии, чтобы после изменения программы она не запускала последний удачный дебаг? Заранее...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru