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

Программа, угадывающая число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Робота с файлами. C++ http://www.cyberforum.ru/cpp-beginners/thread379976.html
.Пользователь читает файл и меняет его(редактирует)он сохраняеца в другом файле и наоборот(типа слово "ПАПА" должно сохранить как"АПАП"!!!! Помогите срочно нужно!
C++ Калькулято (HELP) Всем доброго дня суток. Я только начинаю и хотел спросить: Правильно ли сформирован код? и что может я упустил? Задача звучит так: Написать полноценный калькулятор. Ввод цифр и выбор... http://www.cyberforum.ru/cpp-beginners/thread379972.html
Вычисление по двум введенным вещественным числам коэффициентов приведенного квадратного уравнения, корнями которого являются эти числа C++
помогите пожалуйста срочно с задачей: Надо составить програму,которая по двум введенным вещественным числам вычисляет коэффициенты приведенного квадратного уравнения,корнями которого являются эти...
C++ Помогите Исправить Ошибку
Помогите пожалуйста исправить ошибку в проге: #include <iostream> #include <cmath> using namespace std; double f1(double); double f2(double); double f3(double); double B(double,double, double,...
C++ АТД, перегрузка операторов и функций http://www.cyberforum.ru/cpp-beginners/thread379947.html
Задание: 1. Реализовать (на основе лекционного материала) класс String, который представляет строку символов произвольной длины (отчет - реализация класса). 2. Разработать класс двусвязный список...
C++ Лабораторная задача. кто мож помогите разобраться Требования! Программа обработки числовой матрицы, загружаемой из файла. Ввод/вывод – потоковый. Имя файла с матричными данными должно вводиться пользователем с клавиатуры. Результат операции... подробнее

Показать сообщение отдельно
Abendstern
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 38

Программа, угадывающая число - C++

08.11.2011, 19:26. Просмотров 3080. Ответов 5
Метки (Все метки)

Здравствуйте. Решаю задачку из книги Страуструпа:

"Напишите программу, угадывающую число. Пользователь должен задумать число от 1 до 100, a программа должна задавать вопросы, чтобы выяснить, какое число он задумал (например, 'Задуманное число меньше 50'). Ваша программа должна уметь идентифицировать число после не более семи попыток. Подсказка: используйте операторы < и =, a также конструкцию if-else."

Немного подвис над ней, не пойму каким боком использовать здесь операторы сравнения? Написал прогу без их использования, но с вводом ответов пользователем:

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
#include <iostream>
 
int main()
{
    int lower = 1; // нижняя граница диапазона
    int upper = 100; // верхняя граница 
    int middle; // середина
 
    char answer;
 
    while(lower != upper)
    {
        middle = (upper + lower) / 2;
        std::cout << "Задуманное число меньше " << middle << "? (y/n)";
        std::cin >> answer;
 
        if(answer == 'y')
            upper = middle;
        else
            lower = middle;
 
        std::cout << "[" << lower << " : " << upper << "]\n";
    }
 
    std::cout << "Ваше число =  " << lower << "\n";
    
    system("pause");
    return 0;
}
Работает мягко говоря через раз... например, если я загадываю число 46, то диапазон становится неизменным и равным [46 : 47], и до истины дело так и не доходит. Может условие выхода из цикла у меня неверное? Или вообще условие задачи я не так понял. Буду благодарен, если что-нибудь посоветуете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru