0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 3
1

При вводе слишком большого числа программа зацикливается

18.01.2015, 19:52. Показов 1462. Ответов 1
Метки нет (Все метки)

При вводе слишком большого числа идет зацикливание(вроде так)помогите исправить
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
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <time.h>
#include <locale.h>
using namespace std;
 
int main()
{
    setlocale(NULL, "rus");
 
    int magic, guess, choise_chislo;
    srand(time(0));
    magic = rand()%100+1;
    
    int choise = 0;
    
    
 
    cout << "Выберите уровень сложности:" << endl;
        cout << "1.Легкий(без ограничений)" << endl;
        cout << "2.Средний(6)" << endl; 
        cout << "3.Сложный(3)" << endl;
        cout << "4.Невероятный(1)" << endl;
        cout << "5.Выход из игры" << endl;
start:
    cin >> choise;
    cout << "\n\nВаш выбор: ";
    switch(choise)
    {
        case 1: cout << "Легкий\n";choise_chislo = INT_MAX; break;
        case 2: cout << "Средний(6)\n";choise_chislo = 6; break;
        case 3: cout << "Сложный(3)\n";choise_chislo = 3;;break;
        case 4: cout << "Невероятный(1)\n";choise_chislo = 1;break;
        case 5: cout<< "Выйти";goto end; break;
        default: cout << "Error 404\n\n"; goto start;break;
    }
    for(int i = 0; i <= choise_chislo; i++)
    {
        do
        {
            cout<<"Введите число: "<<endl;
            cin>>guess;
 
            if(guess == magic)
            {
                cout<<"*** Победитель ***"<<endl;
q:
                cout << "Хочешь попробовать снова(y\n): ";
                char ch;
                if(ch == 'y')
                    goto start;
                else if(ch== 'n')
                    goto end;
                else
                {
                    cout << "Неправильный ввод!\n\n;";
                    goto q;
                }
            }
            else
            {
                cout<<"*** Попробуй снова ***"<<endl;
                if (guess > magic) cout<<"*** Ваше число больше ***"<<endl;
                else cout<<"*** Ваше число меньше ***"<<endl;
            }
            }while (guess != magic);
    }
end:
    _getch();
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2015, 19:52
Ответы с готовыми решениями:

При вводе символа программа зацикливается
Я пытался создать программу, которая при вводе отрицательного или типа не int выводит ошибку и...

Программа зацикливается при вводе некорректных данных
Доброго дня. Уже искал по форуму, нашел много похожих тем, но предложенные там решения, в...

При вводе в переменную нетипичного ей символа программа зацикливается
Проблема в том, что если ввести в программу символ отличный от цифры то программа зацикливается, а...

Задание на ряды: программа зацикливается при вводе некоторых значений
Здравствуйте, решал вузовское задание &quot;на дом&quot;. Написал код. Однако при вводе некоторых значений...

1
4813 / 2273 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
18.01.2015, 20:55 2
Если при малых числах работает а при больших зацикливается (а не просто время экспоненциально растет), то первым делом менять инты по умолчанию на беззнаковые лонги. А потом смотреть по результатам.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2015, 20:55
Помогаю со студенческими работами здесь

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt;...

Зацикливается при вводе
Admin.h: #include&lt;string&gt; using namespace std; class Admin { string Login;//Логин...

Зацикливается при неверном вводе
есть такой кусочек while(true) { scanf(&quot;%d%c%d&quot;, &amp;x, &amp;zn, &amp;y); switch (zn) {...

При вводе не числа, программа уходит в бесконечный цикл
Помогите исправить, даже не хнаю как исправить... Если написать не число, а букву допустим, так...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru