С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 08.12.2014
Сообщений: 21
1

Улучшение проги, угадывающей число

18.12.2014, 23:43. Показов 438. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите улучшить код программы для предотвращения появления ошибок(предупреждений, кстати, с чем связано их появление?) и возможно и саму логику, тк я не до конца понимаю почему оно мне выдает не всегда то что надо.
Суть программы, мы загадываем число, а прога по нашим подсказкам пытается угадать это число. Визуал С++ 2008
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
#include <iostream>
#include <string>
#include "math.h"
#include <ctime>
using namespace std;
 
void nachalo();
void resh1(int& Min, int& Max, int a, int& c);
void resh2(int& Min, int& Max, int a, char& k, int& c);
 
void main()
{
     setlocale(0, "");
     cout<<"Загадайте число от [0-100], а я попробую его отгадать. \n Вы должны давать мне подсказки: если мое число больше, то >, \n если меньше, то < и =, если отгадал. \n Следите за правильностью подсказок. \n Готовы? \n Загадывайте!"<<endl;
system("pause");
nachalo();
} 
 
void nachalo()
{
    int a, Min, Max, c=0;
    
    Min=100;
    Max=0;
    resh1(Min, Max, a, c);
    
}
 
void resh1(int& Min, int& Max, int a, int& c)
{
    char k;
    srand( time(0) );
a=rand()% Min +Max;
     cout<<a<<endl;
     cin>>k;
resh2(Min, Max, a, k, c);
      system("pause");
}
 
void resh2(int& Min, int& Max, int a, char& k, int& c)
{
    c++;
     if (k=='>'){
         Min=a-Max;
resh1(Min, Max, a, c);
 
     }
     if (k=='<'){
Max=a;
Min=Min-Max;
resh1(Min, Max, a, c);
 
     }
     if (k=='='){
cout<<"Ураа, я угадал с попытки №"<<c<<endl;
 
     }
     else 
         cout<<"Ошибка ввода знака!!!";
         c--;
     resh2(Min, Max, a, k, c);
 
}
Пожалуйста, выложите готовый код=)

Добавлено через 1 час 9 минут
Помогите, ну сжальтесь=)

Добавлено через 16 минут
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
#include <iostream>
#include <string>
#include "math.h"
#include <ctime>
using namespace std;
 
void nachalo();
void resh1(int& Min, int& Max, int& c);
void resh2(int& Min, int& Max, int a, char& k, int& c);
 
void main()
{
     setlocale(0, "");
     cout<<"Загадайте число от [0-100], а я попробую его отгадать. \n Вы должны давать мне подсказки: если мое число больше, то >, \n если меньше, то < и =, если отгадал. \n Следите за правильностью подсказок. \n Готовы? \n Загадывайте!"<<endl;
system("pause");
nachalo();
} 
 
void nachalo()
{
    int Min, Max, c=0;
    
    Min=100;
    Max=0;
    resh1(Min, Max, c);
    
}
 
void resh1(int& Min, int& Max, int& c)
{
    char k;
    srand( time(0) );
    int a;
a=rand()% Min +Max;
     cout<<a<<endl;
     cin>>k;
resh2(Min, Max, a, k, c);
      system("pause");
}
 
void resh2(int& Min, int& Max, int a, char& k, int& c)
{
    c++;
     if (k=='>'){
         Min=a-Max;
resh1(Min, Max, c);
 
     }
     if (k=='<'){
Max=a;
Min=Min-Max;
resh1(Min, Max, c);
 
     }
     if (k=='='){
cout<<"Ураа, я угадал с попытки №"<<c<<endl;
 
     }
     else 
         cout<<"Ошибка ввода знака!!!";
         c--;
     resh2(Min, Max, a, k, c);
 
}
Вот уже исправленный код на визуал студио 2012(да, теперь уже 2012), избавился от предупреждений и вроде бы логика начала работать правильно(хотя если что проверьте). Но все еще остались баги(не знаю как решить). При вводе направильного знака или победы проги бесконечно выводится сообщение. Помогите решить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2014, 23:43
Ответы с готовыми решениями:

Проги С++ уровня первокурсника - найти n-ю степень (n – натуральное число) числа а
Доброго времени суток. Никак не могу сделать эти задания(( Буду премного благодарен тому, кто...

Установил фотошоп, вместо проги установились другие проги (игры онлайн,браузеры,рекламы и т.д.)
Здравствуйте, уважаемые программисты или форумчане! Скачал и установил с одного сайта фотошоп, а во...

Как отследить из проги на Си завершение другой проги
Есть две программы, одна написана не мной и исходников нет (main), вторую я пытаюсь написать сам...

Улучшение БД
Всем привет! Вот хочу создать БД по предприятиям предлагающим услуги в сфере ИТ по Брянску и...

0
18.12.2014, 23:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2014, 23:43
Помогаю со студенческими работами здесь

Улучшение ПК
Конфигурация моего ПК Intel Celeron E3400 Foxconn G31MVP/G31MXP Оперативная память 2 гб DDR2...

Улучшение ПК
Собственно собираю компьютер не с 0 а часть снимаю со старого часть докупаю,вопрос будет ли...

Улучшение кода
Ребят я самостоятельно по макету сверстал первую страничку, при масштабировании элементы смещаются....

Улучшение поиска
Ребята привет! Помогите пожалуйста, дайте совет, любой мысли буду очень рад есть сайт:...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru