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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.83
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
#1

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

08.10.2012, 17:46. Просмотров 5285. Ответов 22
Метки нет (Все метки)

Есть вопрос, как написать программу, в которая в дипозоне от 0 до 100 загадывает число, а мы, пользователи должны угадать число. При вводе число выводит следующие:
1. число больше вашего
2 число угадано с такой-то попытки
3. число меньше вашего

Максимальное число попыток – 10. Если число не было угадано с 10 попыток, программа выводит сообщение:
“Проигрыш! Правильный ответ такой-то”

И тоже самое, но где уже программа угадывает число с 10-ти попыток и должна угадать...

Не понимаю, как сделать это.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа, которая в диапазоне от 0 до 100 загадывает число, а пользователь должен его угадать (C++):

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

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

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

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

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

Угадать заданное число (1-100) - C++
Требуется за 7 шагов угадать заданное пользователем число, путем задачи вопросов. Что получилось: #include "std_lib_facilities.h"; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
11.10.2012, 13:04  [ТС] #16
Цитата Сообщение от silent_1991 Посмотреть сообщение
Не нужен он. Это фишка исключительно Microsoft Visual Studio, можете о ней не беспокоиться и просто исключить из кода.
Хорошо, спасибо.
Просто я в Dev'e пытаюсь работать и он не воспринимает некоторые вещи
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.10.2012, 13:08 #17
danja702, там по умолчанию используется компилятор mingw (правда, его довольно-таки древняя версия, но всё же), поэтому он будет воспринимать почти всё, что указано в стандарте языка С++ 2003 года. От себя советовал бы обратить внимание на Code::Blocks. С установкой никаких проблем, компилятор встроен, тоже mingw, но версия куда новее.
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
13.10.2012, 21:48  [ТС] #18
Есть код, но он не компилириуется:

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
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main ()
 
float f( float x )
{;
cout << (int)x << endl; // (int) - eka?cn ?cnei ioaan oaeia
while (true)
{
count << "Pravilno (+/-/=)?";
char c;
cin >> c;
switch (c)
{
case '+'; return +1;
case '-'; return -1;
case '='; return 0;
}
cout << "Vi oshiblis'! Ne pravilnij simvol - povtorite!";
cout << endl;
}
flot n(float x1, float x2)
{
float x = (x1 +x2) / 2;
float y = f(x)
while (abs(y) > 0.001)
{
if (y > 0)
x1 = x;
esle 
x2 = x
x = (x1 * x2) / 2;
y = f(x);
}
return x;
}
 
int main()
{
cout << "Vi zagodali: " << (int)n(0, 100);
}
Исправляя мелкие ошибки, такие как знаки точки с запятой или скобки, появляются еще дюжена ошибок.
Что надо сделать, что код скомпилировался и программа заработала корректно? (игра-программа для угадывания моего числа)
Использую Dev-C++ .
Жду ответа.
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
13.10.2012, 23:11 #19
C++ (Qt)
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
34
35
36
37
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian" );
    srand (time(NULL));
    int b=0;
    int sec_num = rand()%100;
    int a;
    do{
        b++;
        cout << "Попробуй угадай секретик\n";
        cin >> a;
        cout << '\n';
        if(a==sec_num){
                cout << "И это правильный ответ!";
                cout << "Вы потратили " << b << " попыток(ки/ку)\n\n\n\n\n\n\nНажмите любую кнопку чтобы выйти!";
                getch();
                return 0;
            }
        if(a>sec_num){
            cout << "Меньше! ";
        }
        if(a<sec_num){
            cout << "Больше! ";
        }
    }while(b!=10);
    cout << "Вы потратили 10 попыток и не угадали! Попробуйте ещё!\n\n\n\n\n\n";
    cout << "На самом деле число: " << sec_num << "\n\n\n\n\n\nНажмите любую кнопку чтобы выйти!";
    getch();
    return 0;
}
У меня вот так вот получилось... Мне кажется, что всё правильно работает и это проще вышеуказанных вариантов (использовал только цикл и массив)
danja702
0 / 0 / 0
Регистрация: 06.10.2012
Сообщений: 19
13.10.2012, 23:46  [ТС] #20
Ne, nuzno chtobi programma ugadala moe chislo!

Добавлено через 7 минут
Oshibki pri kode:


expected init-declarator before "float"
expected `,' or `;' before "float"
OdessaNA
19 / 19 / 0
Регистрация: 10.01.2011
Сообщений: 241
14.10.2012, 01:22 #21
Можно и так (одна из первых серьёзных, на то время, здач).
Вводите начало и конец диапазона, загадываете число. И, следуя указаниям, достигаете загаданного числа.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
using namespace std;
void main()
{
    int L, R, Key, M;
    cout<<"Vvedi nachalo diapazona:\n";
    cin>>L;
    --L; // ----
    cout<<"Vvedi konec diapazona:\n";
    cin>>R;
    ++R; // ----
    Key=(L+R)/2;
    bool stop=true;
    
    do
    {       
        cout<<"Esli chislo <"<<Key<<" najmi 1:\n";
        cout<<"Esli chislo >"<<Key<<" najmi 2:\n";
        cout<<"Esli chislo ="<<Key<<" najmi 3:\n";
        cin>>M;
        if((M==1)||(M==2))
        {
            if(M==1)
            {
            R=Key;
            Key=(L+R)/2;
            }
            else
            {               
                L=Key;
                Key=(R+L)/2;
            }
        }
        else
        {
            if(M==3)
            {
                cout<<"Chislo ="<<Key<<" \n\n";
                L=R-1;
                stop=false;
                break;
            }
            else
            {               
                L=R-1;
            }
        }       
    }
    while(L<R-1 || !stop);
    if(L>=R-1&&stop)//||R==L)
    {       
        cout<<"\nNe lgi mne!\n\n";      
    }
    system ("pause");
}
Belich
0 / 0 / 0
Регистрация: 15.03.2017
Сообщений: 1
15.03.2017, 15:25 #22
danja702, danja702, привет!можешь срочно помочь с кодом?
djedaimo
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 2
15.03.2017, 18:42 #23
Представлю свой алгоритм когда комп угадивает число.
ПЧ = половина числа
ЧК = число компа
ЧП = число пользователя
Ви вводите своє число например ChP.Комп рандомно вибирает число(переменная rch).Если число ЧК больше за ЧП, то в переменную ПЧ записиваем значение ЧП и делим на два, дальше вичитаем с ЧК ПЧ.Если наоборот ЧК меньше за ЧП то снова делим ПЧ на 2 и слагаем ЧК и ПЧ.Дальше если ЧК отличаеться от ЧП на 0.25 автоматически защитиваем победу компу.
В таком алгоритме комп всегда будет побеждать в рамках 10 поопиток.
Алгоритм:
1.Рандомно ЧП.
2.Рандомно ЧК.
3.ПЧ = ЧП/2.
4.Цикл{
Если ЧК>ЧП то ЧК -= ПЧ
Если ЧК<ЧП то ЧК += ПЧ
Цикл 2{
Если Отличие между числами>=ЧК - ЧП автоматично защитиваем победу ПК.
}
ПЧ/2.
}


2 алгоритм
Нужно рандомно задать ЧК и если оно меньше за ЧП то задавать рандом в промежутке от 100 - ЧК.
Также нужно сделать коефициент приближения типа int так как рандом ЧК типа int.
Тоесть если, например ЧП == ЧК + коефициент приближения автоматично победа компу.

Спасибо за внимание
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2017, 18:42
Привет! Вот еще темы с ответами:

Напишите программу, которая выводит цену яблок, начиная с 100 г до 1 кг с шагом 100 г. Цена 1 кг должен быть в - C++
Напишите программу, которая выводит цену яблок, начиная с 100 г до 1 кг с шагом 100 г. Цена 1 кг должен быть введен с клавиатуры. Если цена...

Угадать число от 1 до 100 за 7 попыток: есть ли более изящный подход, чем if/else? - C++
Задача заключается в том что нужно написать программу который угадывает число пользователя от 1 до 100 есть только 7 попыток. Я понимаю что...

Пользователь должен отгадать рандомное число - C++
Всем привет:-) Начал изучать c++ самостоятельно и часто посещал ваш форум как гость. Спустя некоторое время понял, что если...

Где должен находиться файл, чтоб программа его открыла, или как указывать его имя? - C++
Пытаюсь работать с файлами. Объясните, пожалуйста, где должен находиться файл, чтоб программа его открыла или как указывать его имя


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.03.2017, 18:42
Ответ Создать тему
Опции темы

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