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

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

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

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

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

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

Написать игру "Угадай число", используя цикл while - C++
ку,нужно написать игру где компьютер угадывает число допустим за 7 попыток,использовать while.

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

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

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

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

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

13
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;
}
где то ошибка небольшая, не могу уже найти
1
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 15:08  [ТС] #3
запустил, пишет "Is your number LESS than 500, y/n" что бы я не ответил, программа все равно думает, что число меньше 500.
0
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 120
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
...
дальше не стал дебаггер гонять. Логическая ошибка налицо.
2
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 15:47  [ТС] #5
только вот я не могу понять, что значит эта строка?
Цитата Сообщение от cin_cout Посмотреть сообщение
cout<<bgn1<<" and "<<end1;
0
David Sylva
1293 / 955 / 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; 
}
4
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 18:49  [ТС] #7
David Sylva, еще вот такой вопрос, как сделать что бы количество попыток угадывания компьютера не превышало 10? вот например, на 10 раз если он не угадывает, то проигрывает.
0
David Sylva
1293 / 955 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 18:56 #8
За 10 раз всегда угадает.
1
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 19:07  [ТС] #9
David Sylva, и такой вот еще момент, как сделать в программе "защиту от дураков"?
0
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
17.10.2012, 19:08 #10
Спасибо, что написали. Совсем некогда было, пришлось уйти. А интерес, где тормознул остался.
0
David Sylva
1293 / 955 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.10.2012, 19:11 #11
Цитата Сообщение от MrZedFlame Посмотреть сообщение
"защиту от дураков"?
Что имеешь ввиду? Ввод букв, неправильных цифр?
0
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 22:20  [ТС] #12
David Sylva, ну да, к примеру у нас препод просто как проверяет, запускает программу, и просто наугад долбит по клаве. и вот нужно что б в этом случае программа выдавала сообщение типа " не правильный ввод данных" и т.п.
0
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 120
17.10.2012, 23:40 #13
Цитата Сообщение от MrZedFlame Посмотреть сообщение
David Sylva, ну да, к примеру у нас препод просто как проверяет, запускает программу, и просто наугад долбит по клаве. и вот нужно что б в этом случае программа выдавала сообщение типа " не правильный ввод данных" и т.п.

Не по теме:

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

0
MrZedFlame
0 / 0 / 0
Регистрация: 15.07.2012
Сообщений: 29
17.10.2012, 23:49  [ТС] #14
Цитата Сообщение от cin_cout Посмотреть сообщение
Не по теме:
Если наугад долбать по клаве, некоторые ОС можно подвесить, не говоря уже об ошибках в консольных программах... Как бы это помягче. Идиот ваш препод. Так ему и передайте
ой я с радостью...только годика через 3, как диплом получу.
0
17.10.2012, 23:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2012, 23:49
Привет! Вот еще темы с ответами:

Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" - C++
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: &quot;Рабочий день&quot;,&quot;Суббота&quot; или...

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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