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

Игра "Угадай число" - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.67
Pravdin
0 / 0 / 0
Регистрация: 29.04.2011
Сообщений: 8
29.04.2011, 23:40     Игра "Угадай число" #1
Помогите написать программу!!!Вот задание: Игра «Угадай число»: составьте программу определения компьютером задуманного человеком числа от 1 до 1000 с помощью 10 вопросов. Ответы человека – да, нет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 23:40     Игра "Угадай число"
Посмотрите здесь:

Игра "Угадай число" C++
Готовая игра "угадай число" C++
C++ Игра "Угадай число"
Игра "Угадай число" C++
Игра "Угадай число" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SK01736
3 / 3 / 1
Регистрация: 21.01.2011
Сообщений: 29
30.04.2011, 17:20     Игра "Угадай число" #21
сори с тупил, но заметил чуть другую ошибку, вы спрашиваете это то число или нет, а на ответ да оно ищет больше чем вы указали...
поэтому надо добавить еще else if на ответ yes что бы программа прерывалась и показывала загаданое число, а в место старых yes и no поставить bigger or smaller и можно сократить до b и s
тоесть примерно вот так:
C++
1
2
3
4
5
6
7
8
9
cout<<"Number bigger or smaller or this (b or s or y) > "<<middle<<" ?"<<endl;
if (ans == "b")
                        left = middle + 1;
                else
                        if (ans == "s")
                                right = middle;
                else
                        if (ans == "y")
                                { left = middle; break;}
Добавлено через 10 минут
а также можно добавить библиотеку <conio.h> и после вывода числа добавить строчку getch();
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
prZzZ
Программист
 Аватар для prZzZ
108 / 88 / 5
Регистрация: 22.03.2011
Сообщений: 232
30.04.2011, 17:27     Игра "Угадай число" #22
Цитата Сообщение от SK01736 Посмотреть сообщение
а также можно добавить библиотеку <conio.h> и после вывода числа добавить строчку getch();
А можно никаких библиотек не добавлять
C++
1
system("pause");
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
30.04.2011, 17:40     Игра "Угадай число" #23
Цитата Сообщение от SK01736 Посмотреть сообщение
программа хр***вая, например загадал число 25, оно его не проверяло и под конец сказало что мое число это 1...
Number > 500 ?
no
Number > 250 ?
no
Number > 125 ?
no
Number > 63 ?
no
Number > 32 ?
no
Number > 16 ?
yes
Number > 24 ?
yes
Number > 28 ?
no
Number > 26 ?
no
Number > 25 ?
no
Your number is 25!
Для продолжения нажмите любую клавишу . . .
Есть понятие "больше", а есть понятие "больше или равно", учитесь их различать. Почему я не добавил возможность ответить "равно"? Потому что ТС еще в начале темы сказал, что ответ может быть только "да" или "нет".
SK01736
3 / 3 / 1
Регистрация: 21.01.2011
Сообщений: 29
30.04.2011, 18:40     Игра "Угадай число" #24
а если число 750 как он узнает?
или надо 10 раз клацать чтобы он в конце концов его почти угадал?
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
30.04.2011, 18:41     Игра "Угадай число" #25
SK01736, вам про двоичный поиск в интернете не прочитать, в чем проблема? Тем более линки вам уже дали. Подобные вопросы сразу отпадут.
Сначала - интернет, потом - форум, не наоборот, запомните.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.04.2011, 18:46     Игра "Угадай число" #26
Цитата Сообщение от prZzZ Посмотреть сообщение
А можно никаких библиотек не добавлять
Вообще-то system() определена в cstdlib.
Pravdin
0 / 0 / 0
Регистрация: 29.04.2011
Сообщений: 8
30.04.2011, 18:54  [ТС]     Игра "Угадай число" #27
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>
using namespace std;
 
int BinSearch(int *M, int n, int k);
 
int main()
{
    const int n=5;
    int A[n];
    int x;
    
    for (size_t i=0; i<n; i++)
    {
        cout << "Please, input A[" << i+1 << "] = ";
        cin >> A[i];
    }
    
    cout << "find this -> ";
    cin >> x;
    
    cout << BinSearch(A, n, x);
    
    return 0;
}
 
int BinSearch(int *M, int n, int k)
{
    int L = 0;
    int R = n;
 
    int m;
    int z = 0;
 
    while (L<R)
    {
        z++;
        m = (L+R)/2;
        if (k > M[m]) L = m;
        if (k < M[m]) R = m;
        if (k == M[m]) break;
    }
 
    return m;
}
Нашел на форуме. Только как сделать ее без ручного ввода в массив чисел и подогнать под Borland C++??!!
prZzZ
Программист
 Аватар для prZzZ
108 / 88 / 5
Регистрация: 22.03.2011
Сообщений: 232
30.04.2011, 19:02     Игра "Угадай число" #28
asics,
Цитата Сообщение от asics Посмотреть сообщение
Вообще-то system() определена в cstdlib.
Вообще-то она в cstdlib реализована, а определена она в stdlib.h, который iostream грузит автоматом...
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.04.2011, 19:10     Игра "Угадай число" #29
prZzZ, Может не будем говорить глупости ?
cstdlib(mingw 4.6.0)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
// -*- C++ -*- forwarding header.
 
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008, 2009, 2010
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
 
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
 
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
 
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
// <http://www.gnu.org/licenses/>.
 
/** @file include/cstdlib
 *  This is a Standard C++ Library file.  You should @c \#include this file
 *  in your programs, rather than any of the @a *.h implementation files.
 *
 *  This is the C++ version of the Standard C Library header @c stdlib.h,
 *  and its contents are (mostly) the same as that header, but are all
 *  contained in the namespace @c std (except for names which are defined
 *  as macros in C).
 */
 
//
// ISO C++ 14882: 20.4.6  C library
//
 
#pragma GCC system_header
 
#include <bits/c++config.h>
 
#ifndef _GLIBCXX_CSTDLIB
#define _GLIBCXX_CSTDLIB 1
 
#if !_GLIBCXX_HOSTED
// The C standard does not require a freestanding implementation to
// provide <stdlib.h>.  However, the C++ standard does still require
// <cstdlib> -- but only the functionality mentioned in
// [lib.support.start.term].
 
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
 
namespace std
{
  extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
  extern "C" int atexit(void (*)()) throw ();
  extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
} // namespace std
 
#else
 
#include <stdlib.h>
 
// Get rid of those macros defined in <stdlib.h> in lieu of real functions.
#undef abort
#undef abs
#undef atexit
#undef atof
#undef atoi
#undef atol
#undef bsearch
#undef calloc
#undef div
#undef exit
#undef free
#undef getenv
#undef labs
#undef ldiv
#undef malloc
#undef mblen
#undef mbstowcs
#undef mbtowc
#undef qsort
#undef rand
#undef realloc
#undef srand
#undef strtod
#undef strtol
#undef strtoul
#undef system
#undef wcstombs
#undef wctomb
 
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
 
  using ::div_t;
  using ::ldiv_t;
 
  using ::abort;
  using ::abs;
  using ::atexit;
  using ::atof;
  using ::atoi;
  using ::atol;
  using ::bsearch;
  using ::calloc;
  using ::div;
  using ::exit;
  using ::free;
  using ::getenv;
  using ::labs;
  using ::ldiv;
  using ::malloc;
#ifdef _GLIBCXX_HAVE_MBSTATE_T
  using ::mblen;
  using ::mbstowcs;
  using ::mbtowc;
#endif // _GLIBCXX_HAVE_MBSTATE_T
  using ::qsort;
  using ::rand;
  using ::realloc;
  using ::srand;
  using ::strtod;
  using ::strtol;
  using ::strtoul;
  using ::system;
#ifdef _GLIBCXX_USE_WCHAR_T
  using ::wcstombs;
  using ::wctomb;
#endif // _GLIBCXX_USE_WCHAR_T
 
  inline long
  abs(long __i) { return labs(__i); }
 
  inline ldiv_t
  div(long __i, long __j) { return ldiv(__i, __j); }
 
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
 
#if _GLIBCXX_USE_C99
 
#undef _Exit
#undef llabs
#undef lldiv
#undef atoll
#undef strtoll
#undef strtoull
#undef strtof
#undef strtold
 
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
 
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  using ::lldiv_t;
#endif
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
  extern "C" void (_Exit)(int) throw () _GLIBCXX_NORETURN;
#endif
#if !_GLIBCXX_USE_C99_DYNAMIC
  using ::_Exit;
#endif
 
  inline long long
  abs(long long __x) { return __x >= 0 ? __x : -__x; }
 
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  using ::llabs;
 
  inline lldiv_t
  div(long long __n, long long __d)
  { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
 
  using ::lldiv;
#endif
 
#if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  extern "C" long long int (atoll)(const char *) throw ();
  extern "C" long long int
    (strtoll)(const char * __restrict, char ** __restrict, int) throw ();
  extern "C" unsigned long long int
    (strtoull)(const char * __restrict, char ** __restrict, int) throw ();
#endif
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  using ::atoll;
  using ::strtoll;
  using ::strtoull;
#endif
  using ::strtof;
  using ::strtold;
 
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace __gnu_cxx
 
namespace std
{
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  using ::__gnu_cxx::lldiv_t;
#endif
  using ::__gnu_cxx::_Exit;
  using ::__gnu_cxx::abs;
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  using ::__gnu_cxx::llabs;
  using ::__gnu_cxx::div;
  using ::__gnu_cxx::lldiv;
#endif
  using ::__gnu_cxx::atoll;
  using ::__gnu_cxx::strtof;
  using ::__gnu_cxx::strtoll;
  using ::__gnu_cxx::strtoull;
  using ::__gnu_cxx::strtold;
} // namespace std
 
#ifdef __GXX_EXPERIMENTAL_CXX0X__
 
namespace std
{
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  // types
  using std::lldiv_t;
 
  // functions
  using std::llabs;
  using std::lldiv;
#endif
 
  using std::atoll;
  using std::strtoll;
  using std::strtoull;
 
  using std::strtof;
  using std::strtold;
 
  // overloads
  using std::abs;
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
  using std::div;
#endif
} // namespace std
 
#endif // __GXX_EXPERIMENTAL_CXX0X__
 
#endif // _GLIBCXX_USE_C99
 
#endif // !_GLIBCXX_HOSTED
 
#endif

Где Вы здесь видите реализацию ?Да и вообще, компилирую код
C++
1
2
3
4
5
6
7
//#include <cstdlib>
#include <iostream>
 
int main(){
  system("pause");
  return 0;
}
ошибка:
Bash
1
error: 'system' was not declared in this scope
так что, не будьте так громки в своих заявлениях.
ascop
1 / 1 / 0
Регистрация: 30.04.2011
Сообщений: 5
30.04.2011, 19:11     Игра "Угадай число" #30
m:array [1..1000] of real;
prZzZ
Программист
 Аватар для prZzZ
108 / 88 / 5
Регистрация: 22.03.2011
Сообщений: 232
30.04.2011, 19:15     Игра "Угадай число" #31
asics, Извините... У меня на VC 6.0 компилируется всё без ошибок...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 01:20     Игра "Угадай число"
Еще ссылки по теме:

Игра "Угадай число" C++
Игра «Угадай число» C++
Игра "Угадай число" C++

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

Или воспользуйтесь поиском по форуму:
HeM01
36 / 24 / 2
Регистрация: 05.01.2010
Сообщений: 37
01.05.2011, 01:20     Игра "Угадай число" #32
все правильно. в vs stdlib.h грузится автоматом при подключении iostream. и не только этот хэдер.
попробуй через std нэймспейс вызвать метод.
Yandex
Объявления
01.05.2011, 01:20     Игра "Угадай число"
Ответ Создать тему
Опции темы

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