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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
lastfin
10 / 10 / 0
Регистрация: 06.02.2012
Сообщений: 52
#1

Угадать заданное число (1-100) - C++

09.07.2012, 16:05. Просмотров 2223. Ответов 12
Метки нет (Все метки)

Требуется за 7 шагов угадать заданное пользователем число, путем задачи вопросов. Что получилось:

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
#include "std_lib_facilities.h";
 
    int main()
    {
    setlocale(LC_CTYPE,"RUS");
    setlocale( LC_ALL,"" );
    cout << "Пожалуйста, загадайте число (0-100)\n";
    int i =0;
    int medium = 50;
        
        for(int i=0; i<7; ++i)
        {
        cout<< "Ваше число меньше или равно " << medium << "? (да/нет)\n";
        string answer = "???";
        cin >> answer;
        if (answer == "да")
            medium = medium/2;
        
        if (answer == "нет")
        medium =medium/2+medium;
        }
 
        cout << medium;
        system ("pause");
    }
Проблема в том, что переменная medium не принимает значения, которое должна по условию, которое написано в теле цикла. Как первый раз спрашивает про число 50, так и следующие 6 раз то же самое. Не подскажете, как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2012, 16:05     Угадать заданное число (1-100)
Посмотрите здесь:

Пользователь загадывает число от 1 до 100, а программа должна его угадать - C++
Подскажите алгоритм выполнения такой задачи: Пользователь загадывает число от 1 до 100, а программа должна его угадать, задавая вопросы...

Программа, которая в диапазоне от 0 до 100 загадывает число, а пользователь должен его угадать - C++
Есть вопрос, как написать программу, в которая в дипозоне от 0 до 100 загадывает число, а мы, пользователи должны угадать число. При вводе...

Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его угадать - C++
помогите решить Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его...

Заменить числа последовательности, превышающие заданное число, на заданное число - C++
решите..а то вообще не понимаю..

Написать программу, реализует следующую игровую ситуацию: компьютер задает случайное целое число в интерали от 1 до 10, а мне нужно это число угадать - C++
Написать программу, реализует следующую игровую ситуацию: компьютер задает случайное целое число в интерали от 1 до 10, а мне нужно это...

угадать число - C++
Написать прогу, которая &quot;задумывает&quot; число в диапозоне от 1 до 10 и предлогает пользователю угадать число за 5 попыток.

Угадать задуманное пользователем число - C++
Описание словами: (я загадала 3) Прога пишет &quot;Введите число с которого начать отсчет&quot; 2 &quot;Введите число которым закончить отсчет&quot; 5 ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
09.07.2012, 16:22     Угадать заданное число (1-100) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
    {
    setlocale(LC_CTYPE,"RUS");
    setlocale( LC_ALL,"" );
    cout << "Пожалуйста, загадайте число (0-100)\n";
    int i =0;
    int medium = 50;
        
        for(int i=0; i<7; ++i)
        {
        cout<< "Ваше число меньше или равно " << medium << "? (y/n)\n";
       char answer;
        cin >> answer;
        if (answer == 'y')
            medium = medium/2;
        
        if (answer == 'n')
        medium =medium/2+medium;
        }
 
        cout << medium;
        system ("pause");
    }
так работает
lastfin
10 / 10 / 0
Регистрация: 06.02.2012
Сообщений: 52
09.07.2012, 16:47  [ТС]     Угадать заданное число (1-100) #3
Цитата Сообщение от Alt_Shift Посмотреть сообщение
так работает
Спасибо, только непонятно почему строки в отличие от символов не сравниваются по нормальному.
Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
09.07.2012, 16:58     Угадать заданное число (1-100) #4
с кодировкой русских символов наверное проблема. Попробуйте "да" и "нет" заменить на "da" и "net" или вместо
C++
1
2
setlocale(LC_CTYPE,"RUS");
    setlocale( LC_ALL,"" );
поставить
C++
1
2
3
setlocale(LC_ALL, "Russian");
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
и в свойствах консоли поставить шрифт lucida console
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
09.07.2012, 19:21     Угадать заданное число (1-100) #5
Цитата Сообщение от Alt_Shift Посмотреть сообщение
так работает
Где работает то? Оно же ни чего не отгадывает!
Catstail
Модератор
22457 / 10862 / 1769
Регистрация: 12.02.2012
Сообщений: 17,988
09.07.2012, 19:52     Угадать заданное число (1-100) #6
Господи! Да нельзя же так (ans == "y") сранивать строки. Ни в C, ни в С++!

Надо:

C++
1
if (strcmp(ans,"y"))
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.07.2012, 19:55     Угадать заданное число (1-100) #7
Цитата Сообщение от Catstail Посмотреть сообщение
Господи! Да нельзя же так (ans == "y") сранивать строки. Ни в C, ни в С++!
Если это std::string(что, собственно, и представлено у ТС), то можно. И это предпочтительнее strcmp, хотя бы потому, что так логичнее выглядит.
Catstail
Модератор
22457 / 10862 / 1769
Регистрация: 12.02.2012
Сообщений: 17,988
09.07.2012, 20:01     Угадать заданное число (1-100) #8
Но в коде-то написано char answer...
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.07.2012, 20:02     Угадать заданное число (1-100) #9
Цитата Сообщение от Catstail Посмотреть сообщение
Но в коде-то написано char answer
Во втором - да. Но и сравнивается там чар с чаром.
Catstail
Модератор
22457 / 10862 / 1769
Регистрация: 12.02.2012
Сообщений: 17,988
09.07.2012, 20:02     Угадать заданное число (1-100) #10
Оп... Не туда заглянул. Виноват.
Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
09.07.2012, 20:51     Угадать заданное число (1-100) #11
Цитата Сообщение от Kastaneda Посмотреть сообщение
Где работает то? Оно же ни чего не отгадывает!
вообще то отгадывает
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
09.07.2012, 21:07     Угадать заданное число (1-100) #12
Цитата Сообщение от Alt_Shift Посмотреть сообщение
вообще то отгадывает
Ну, совпадения тоже бывают Какое число?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 21:49     Угадать заданное число (1-100)
Еще ссылки по теме:

Написать программу, которая "задумывает" число в диапазоне от 1 до 10 и предлагает пользователю угадать число - C++
Кто знает как на С++ можно решить данную задачу при помощи цикла do while? Написать программу, которая &quot;задумывает&quot; число в диапазоне от...

Угадать число методом половинного деления - C++
Загадывается число от 1 до 1000 и компьютер его угадывает согласно подсказкам больше или меньше. Используем метод половинного деления.

Вставить заданное число элементов после элемента, имеющего заданное значение - C++
Ребят,помогите плз,если можете. Вставить заданное число элементов после элемента, имеющего заданное значение Работа должна быть...

Программа задумывает число в диапазоне от 1 до 10 и предлагает пользователю угадать его за 5 попыток - C++
Написать программу, которая задумывает число в диапазоне от 1 до 10 и предлагает пользователю угадать его за 5 попыток. С++

Программа "задумывает" число и предлагает пользователю его угадать - C++
Написать программу, которая &quot;задумывает&quot; число в диапазоне от 1 до 10 и предлагает пользователю угадать число за 5 по- пыток. Ниже...


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

Или воспользуйтесь поиском по форуму:
Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
09.07.2012, 21:49     Угадать заданное число (1-100) #13
Цитата Сообщение от Kastaneda Посмотреть сообщение
Ну, совпадения тоже бывают Какое число?
да хотя бы 25. Сам алгоритм для угадывания числа странный конечно. Но вопрос был "почему не меняется значение переменной", его вроде как раскрыли. Я бы тоже, конечно, сделал иначе и воспользовался чем то вроде
C++
1
2
3
4
5
6
7
8
9
10
11
for(int i=0; i<7; ++i)
        {
        cout<< "Ваше число меньше или равно " << medium << "? (y/n)\n";
        char answer;
        cin >> answer;
        if (answer == "y")
            medium =rand()%medium;
        
        if (answer == "n")
        medium =medium+rand()%(100-medium)
        }
Yandex
Объявления
09.07.2012, 21:49     Угадать заданное число (1-100)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru