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

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

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

Игра "Угадай число" C++
Game "Угадай число" как зделать запрет на "букви" ???? C++
C++ "Угадай число" (напишите программу, хочу проверить со своей).
C++ Игра "Угадай число"
Программу "Угадай число" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
25 / 25 / 7
Регистрация: 06.10.2012
Сообщений: 114
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
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
25 / 25 / 7
Регистрация: 06.10.2012
Сообщений: 114
17.10.2012, 23:40     Написать программу "Угадай число" #13
Цитата Сообщение от MrZedFlame Посмотреть сообщение
David Sylva, ну да, к примеру у нас препод просто как проверяет, запускает программу, и просто наугад долбит по клаве. и вот нужно что б в этом случае программа выдавала сообщение типа " не правильный ввод данных" и т.п.

Не по теме:

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

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

Игра "Угадай число" C++
Игра "Угадай число" C++
C++ Нужен совет по задаче "Угадай число"

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

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

Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru