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

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

Войти
Регистрация
Восстановить пароль
 
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 82
#1

Программа завершается при любых действиях пользователя - C++

16.06.2016, 14:14. Просмотров 222. Ответов 9

Программа заканчивается, даже если пользователь выбрал продолжить программу. В чём проблема? Код программы:
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
#include <conio.h>;
#include <iostream>;
#include <ctime>;
 
using namespace std;
 
 
int main()
{
setlocale(0,"Russian");
cout << "\t\t***ИГРА***\n\n";
 
bool p = false;
 
do
{
int r = 0, w = 0;
 
cout << "Правила:\nИгра создаёт случайное число,\nты вводишь число от 0 до 3, если оно совпало\n с генерированным - ты проиграл\n";
 
srand(time(NULL));
r = rand()%3;
 
cin >> w;
if(w > 3)
{
cout << "Слишком большое число";
_getch();
return 1;
}
if(w == r)
    cout << "Ты ПРОИГРАЛ\n";
else cout << "Ты ВЫЙГРАЛ\n";
 
char what;
cout << "Снова\?(д/н)\n";
cin >> what;
    if(what == 'д')
        p = false;
    else if(what == 'н')
        p = true;
    else {_getch(); return 2;}
}
while(p);
 
_getch();
return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2016, 14:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа завершается при любых действиях пользователя (C++):

При вводе числа с плавающей точкой завершается программа - C++
Вот код: #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;clocale&gt; /* run this program using the...

Программа завершается при большом размере матрицы смежности - C++
Добрый день! Прошу помощи по решению проблемы. В общем я пишу программу для работы с графами (точнее с матрицей смежности графов). Пишу...

При вызове функции из OpenSSL программа завершается с кодом 0х1 - C++
int main(int argc, char* argv) { RSA *keypair = RSA_generate_key(RSA_KEY_LENGTH, PUB_EXP, NULL, NULL); FILE *rsa_pubkey_file =...

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

Не завершается программа - C++
После ввода массива консоль не закрывается, почему? #include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;stdlib.h&gt; #include &lt;iomanip&gt; ...

Программа не завершается - C++
Здравствуйте! 1) Моя программа на первом же тесте превышает положенное время (она не долго работает, она просто не завершается)....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
16.06.2016, 14:34 #2
Попробуйте выбрать "нет". Удивитесь.
0
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 82
16.06.2016, 20:01  [ТС] #3
Цитата Сообщение от SpBerkut Посмотреть сообщение
Попробуйте выбрать "нет". Удивитесь.
Не понял. Можно поподробней? Вы про нет в программе или в коде программы?
0
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
16.06.2016, 20:31 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
Можно поподробней?
Разумеется.
C++
1
2
3
4
5
6
7
8
9
10
11
12
do
{
...
cout << "Снова\?(д/н)\n";
cin >> what;
    if(what == 'д')
        p = false;  //если выбрали "да", то false
    else if(what == 'н')
        p = true; //если выбрали "нет", то true
    else {_getch(); return 2;}
}
while(p); // если тут true (т.е. если выбрано нет), то начинаем игру (цикл) снова, иначе выходим.
1
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 82
16.06.2016, 20:49  [ТС] #5
Цитата Сообщение от SpBerkut Посмотреть сообщение
Разумеется.
C++
1
2
3
4
5
6
7
8
9
10
11
12
do
{
...
cout << "Снова\?(д/н)\n";
cin >> what;
    if(what == 'д')
        p = false;  //если выбрали "да", то false
    else if(what == 'н')
        p = true; //если выбрали "нет", то true
    else {_getch(); return 2;}
}
while(p); // если тут true (т.е. если выбрано нет), то начинаем игру (цикл) снова, иначе выходим.
Всё равно не выходит =\
0
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
16.06.2016, 20:55 #6
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
Всё равно не выходит =\
Попробуйте английские символы вводить. Быть может дело в некорректно обрабатываемой кириллице.
0
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 82
16.06.2016, 20:59  [ТС] #7
Цитата Сообщение от SpBerkut Посмотреть сообщение
Попробуйте английские символы вводить. Быть может дело в некорректно обрабатываемой кириллице.
Без изменений =(
0
Hikari
Хитрая блондиночка $)
1447 / 954 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
16.06.2016, 21:09 #8
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
else {_getch(); return 2;}
А это зачем?
C++
1
2
3
4
5
6
7
8
int i,k;
for(char c='д';c!='н';c=_getch()){
 i=rand()%3;
 cout>>"введите число";
 cin>>k;
 if(i==k) {cout<<"Лу-у-у-зер!"; break;};
 cout>>"Продолжаем? (д/н)";
}
Вот так бы делала я.
0
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 82
16.06.2016, 21:14  [ТС] #9
Цитата Сообщение от Hikari Посмотреть сообщение
А это зачем?
что бы если введён не тот символ программа завершилась

Добавлено через 2 минуты
Цитата Сообщение от Hikari Посмотреть сообщение
int i,k;
for(char c='д';c!='н';c=_getch()){
*i=rand()%3;
*cout>>"введите число";
*cin>>k;
*if(i==k) {cout<<"Лу-у-у-зер!"; break;};
*cout>>"Продолжаем? (д/н)";
}
если честно я ещё в с++ чайник, поэтому понял твой код на пять шестых мне легче по своему. Кстати, для чего
Цитата Сообщение от Hikari Посмотреть сообщение
break;
?
0
Hikari
Хитрая блондиночка $)
1447 / 954 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
17.06.2016, 07:41 #10
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
break;
Выход из цикла.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2016, 07:41
Привет! Вот еще темы с ответами:

Программа сразу завершается - C++
Здравствуйте! Я написал программу с конфигурацией решения Release, при запуске exe-файла программа тут же закрывается, а то что она выводит...

Программа не завершается корректно - C++
Написал программу, определяющую наибольшее из двух введённых пользователем чисел. Решил усложнить её и завершить её только нажатия,...

программа завершается аварийно - C++
запускаю компилятор, все запустилось, работает (меню из кучи условий if-else). выбираю любой пункт меню и он работает, после этого надо...

Программа завершается с ошибкой Killed - C++
Программа завершается с ошибкой Killed, когда я выделяю очень много динамической памяти, но меньше чем есть в наличии всей памяти. Как...


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

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

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