|
Nuckelavee
|
||||||
помогите понять (генератор чисел)06.12.2011, 23:06. Показов 941. Ответов 6
Метки нет (Все метки)
помогите, пожалуйста, разобраться:
С++ начал изучать буквально неделю назад, решил применить все полученные на данный момент знания на практике и написал программку, которая сама загадывает себе число от 0 до 100 и сама же его отгадывает в зависимости от сообщений "заданное число больше/меньше вашего". Вроде работает, угадывает (делал и вариант когда сам вводил число для угадывания), однако часто проскакивают ошибки типа - подставляет число, пишет что оно больше/меньше загадоного, сужает рамки поиска, а потом подставляет то же самое число и оно оказывается правильным. вот код:
|
||||||
| 06.12.2011, 23:06 | |
|
Ответы с готовыми решениями:
6
Помогите понять формулировку Помогите понять ошибку помогите понять смысл задания |
|
50 / 50 / 12
Регистрация: 22.05.2011
Сообщений: 326
|
||||||
| 06.12.2011, 23:14 | ||||||
|
Я не понимаю зачем вам
0
|
||||||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 06.12.2011, 23:25 | |
|
Поиск ошибок методом пристального взгляда - это круто, но для такого рода проблем дебагер придумали. Научитесь им пользоваться. С ним они находятся и фиксятся очень быстро. Хотя бы попробуйте.
0
|
|
|
Заблокирован
|
|||||||||||
| 07.12.2011, 01:00 | |||||||||||
|
Nuckelavee, проверил.
Ты не правильно проверяешь условия выиграша:
Я немножко подредактировал твой код. Теперь он корректно проверяет условие успешного отгадывания числа))
да и ещё. Твой код написан таким образом... у тебя функция вызывает другую функцию, и эта другая - опять первую же функцию. То есть, у тебя рекурсия через посредника. А это значит, что если задать слишком большой диапазон значений, то стек может и не выдержать. И программа покрошится в рантайме. Добавлено через 39 минут Да, вот ещё на заметку: 1. У меня программулька свалилась от переполнения стека, когда количество попыток отгадать число превысило 1500 с чем то раз. 2. Если загадать число, которое весит больше 16 бит, то твой алгоритм отгадывания станет крайне не эффективным. Это связанно с тем, что сам по себе рандом выдает числа из диапазона signed short Поэтому, сужение диапазона поиска чисел будит не больше чем 32 767 Таким образом, если загадать 1000000, то компьютерный игрок будит больше заниматься соплежуйством, нежели реальным отгадыванием)
0
|
|||||||||||
|
Nuckelavee
|
|
| 07.12.2011, 10:32 | |
|
Спасибо за помощь, кажется разобрался. По поводу дебаггера - пока с ним не дружу, но попробовал свой вариант через него прогнать, однако ошибок дебаггер не обнаружил, возможно я не совсем понимаю его назначение. Но все равно всем спасибо за ответы, буду изучать дальше.
|
|
|
Заблокирован
|
|
| 07.12.2011, 17:25 | |
|
Nuckelavee, Дебаггер над знать хотя бы на уровне пошаговой отладки.
Без него практически нереально найти ошибку в более менее сложной логике. Есть ещё техники "ведения логов", и тп. Но старая добрая пошаговая отладка, имхо - самый простой способ понять, что делает код.
0
|
|
|
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
|
|||||||
| 07.12.2011, 18:23 | |||||||
|
1. цель: программа должна отгадать число, загаданное пользователем. 2. детали: диапазон чисел задается программой или пользователем (на ваше усмотрение) 3. средства: память для хранения начального и конечного границ диапазона, память для хранения найденного числа, память для хранения и сравнения ответа на заданный вопрос, память для промежуточных значений функция поиска числа, т.е. всего 5 переменных. Для поставленной задачи сгодится метод половинного деления, согласитесь что инкремент и декремент границ диапазона это мелко, поднимайте планку. Число пользователь просто загадывает в границах диапазона (не вводит в память, а держит в голове) и отвечает на вопросы. Вот код программы, изучайте, дополняйте по своему усмотрению. Можно убрать комментарии (только если сразу оба) и закомментировать строки под ними. У меня непонятки какие-то проявились с кодировками, поэтому я сначала написал так, а когда увидел что незадача, то сменил подход.
0
|
|||||||
| 07.12.2011, 18:23 | |
|
Помогаю со студенческими работами здесь
7
Помогите понять и исправить ошибку... Помогите понять и исправить ошибку... Помогите понять задачу в теории Помогите понять принцип составления проги Помогите понять и исправить ошибку (статические обьекты) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В качестве. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|