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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
#1

Написать программу "Угадай число" - C++

17.10.2012, 12:04. Просмотров 2171. Ответов 13
Метки нет (Все метки)

Один из играющих задумывает число от 1 до 1000, другой пытается угадать его за 10 вопросов вида: верно ли, что задуманное число больше такого-то числа. Написать программу, играющую за отгадчика. Компилятор-Visual Studio.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 12:04     Написать программу "Угадай число"
Посмотрите здесь:

"Угадай число" (напишите программу, хочу проверить со своей). - C++
"Угадай число". Пользователю предлагается отгадать число за 10 попыток. Программа даёт подсказки вида больше, меньше.

Программу "Угадай число" - C++
Необходимо написать программу "Угадай число". После того,как число угадано, программа спрашивает, хотите ли вы еще раз сыграть. После ввода...

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

Реализовать генерацию случайных чисел для игры "Угадай число" - C++
Всем привет!написал код для игры. По условию компьютер должен загадать число от 1 до 100 и пользователь должен отгадать это число за 6...

Нужен совет по задаче "Угадай число" - C++
Вася загадал число от 1 до N. За какое наименьшее количество вопросов (на которые Вася отвечает "да" или "нет") Петя может угадать Васино...

Исправить ошибки в программе "угадай число" - C++
суть программы, генерирует случайное число от 1 до 1000, запрашивает число и говорит больше или меньше, если введено не число выдаёт...

Готовая игра "угадай число" - C++
#include <iostream.h> int main () { int x=rnd%256; int d; int masks={0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
17.10.2012, 14:56     Написать программу "Угадай число" #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
24
25
26
27
28
29
30
31
32
33
using namespace std;
#pragma argsused
int main(int argc, char* argv[])
{
    int bgn1;
    int end1;  
    
    end1=1000;
    bgn1=1;       
 
   for (int i=0;i<11;i++)
 
   {char answ;
    cout<<"Is your number LESS than  "<<(end1+bgn1)/2<<"  y/n"<<endl;
    cin>>answ;
 
    if (answ='y')     //меньше
    {
      end1=(end1+bgn1)/2;
      bgn1=bgn1;
    }
    else               //больше
    {
     bgn1+=(end1+bgn1)/2;
     end1=end1;
    }
   }
   
   cout<<bgn1<<" and "<<end1;
   int j;
   cin>>j;
   return 0;
}
где то ошибка небольшая, не могу уже найти
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 15:08  [ТС]     Написать программу "Угадай число" #3
запустил, пишет "Is your number LESS than 500, y/n" что бы я не ответил, программа все равно думает, что число меньше 500.
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
17.10.2012, 15:11     Написать программу "Угадай число" #4
Чуток переписал код, потому что 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
30
31
32
33
#include <iostream>
using namespace std;
 
int main (int argc, char * const argv[]) {
            int bgn1;
        int end1;  
        
        end1=1000;
        bgn1=1;       
        
        for (int i=0;i<11;i++)
            
        {char answ;
            cout<<"Is your number LESS than  "<<(end1+bgn1)/2<<"  y/n"<<endl;
            cin>>answ;
            
            if (answ=='y')     //меньше
            {
                end1=(end1+bgn1)/2;
                bgn1=bgn1;
            }
            if (answ=='n')               //больше
            {
                bgn1+=(end1+bgn1)/2;
                end1=end1;
            }
        }
        
        cout<<bgn1<<" and "<<end1;
        int j;
        cin>>j;
        return 0;
    }
Прогон:
Is your number LESS than 500 y/n
n
Is your number LESS than 750 y/n
y
Is your number LESS than 625 y/n
n
Is your number LESS than 938 y/n
y
Is your number LESS than 1032 y/n
...
дальше не стал дебаггер гонять. Логическая ошибка налицо.
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 15:47  [ТС]     Написать программу "Угадай число" #5
только вот я не могу понять, что значит эта строка?
Цитата Сообщение от cin_cout Посмотреть сообщение
cout<<bgn1<<" and "<<end1;
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 16:29     Написать программу "Угадай число" #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream> 
 
int main() 
{   
    setlocale(0, "rus");
    int min = 1; 
    int max = 1000; 
    int number; 
    char ch ; 
 
    while(true) 
    {    
        number = (min+max) / 2;
        std::cout << "Ваше число равно " << number << " введите символ  + - = " << std::endl; 
        std::cin >> ch; 
        if(ch == '+') 
            min = number; 
        if(ch == '-') 
            max = number; 
        if(ch == '=') break;
   } 
    std::cout << "Вы загадали число " << number << std::endl; 
}
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 18:49  [ТС]     Написать программу "Угадай число" #7
David Sylva, еще вот такой вопрос, как сделать что бы количество попыток угадывания компьютера не превышало 10? вот например, на 10 раз если он не угадывает, то проигрывает.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 18:56     Написать программу "Угадай число" #8
За 10 раз всегда угадает.
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 19:07  [ТС]     Написать программу "Угадай число" #9
David Sylva, и такой вот еще момент, как сделать в программе "защиту от дураков"?
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
17.10.2012, 19:08     Написать программу "Угадай число" #10
Спасибо, что написали. Совсем некогда было, пришлось уйти. А интерес, где тормознул остался.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 19:11     Написать программу "Угадай число" #11
Цитата Сообщение от MrZedFlame Посмотреть сообщение
"защиту от дураков"?
Что имеешь ввиду? Ввод букв, неправильных цифр?
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 22:20  [ТС]     Написать программу "Угадай число" #12
David Sylva, ну да, к примеру у нас препод просто как проверяет, запускает программу, и просто наугад долбит по клаве. и вот нужно что б в этом случае программа выдавала сообщение типа " не правильный ввод данных" и т.п.
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
17.10.2012, 23:40     Написать программу "Угадай число" #13
Цитата Сообщение от MrZedFlame Посмотреть сообщение
David Sylva, ну да, к примеру у нас препод просто как проверяет, запускает программу, и просто наугад долбит по клаве. и вот нужно что б в этом случае программа выдавала сообщение типа " не правильный ввод данных" и т.п.

Не по теме:

Если наугад долбать по клаве, некоторые ОС можно подвесить, не говоря уже об ошибках в консольных программах... Как бы это помягче. Идиот ваш препод. Так ему и передайте

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2012, 23:49     Написать программу "Угадай число"
Еще ссылки по теме:

Оптимизация игры "Угадай число" - C++
Буду рад если подскажите что здесь лишние. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iostream&gt; ...

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

Игра "Угадай число" - C++
Помогите написать программу!!!Вот задание: Игра «Угадай число»: составьте программу определения компьютером задуманного человеком числа от...

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

Игра "Угадай число" - C++
Здравствуйте,помогите у кого есть время и возможность вообщем задание такое: нужно написать прогу,где юзер вводит любое число ...


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

Или воспользуйтесь поиском по форуму:
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 23:49  [ТС]     Написать программу "Угадай число" #14
Цитата Сообщение от cin_cout Посмотреть сообщение
Не по теме:
Если наугад долбать по клаве, некоторые ОС можно подвесить, не говоря уже об ошибках в консольных программах... Как бы это помягче. Идиот ваш препод. Так ему и передайте
ой я с радостью...только годика через 3, как диплом получу.
Yandex
Объявления
17.10.2012, 23:49     Написать программу "Угадай число"
Ответ Создать тему
Опции темы

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