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

Стек на базе массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как установить gmp. VS2008 XPsp2. http://www.cyberforum.ru/cpp-beginners/thread169153.html
Вопрос, такой, перенаправьте меня, туда, где написано как установить gmp.h и библиотеки соовтествующие. А то толком не нашел ничего. А есть нужда использовать большие целочисленные числа. :) Добавлено через 1 час 25 минут Кажется разобрался, делал по-этому мануалу: Ну если не любовь, то дружба точно. =) Потанцуем с результатами прошлого поста. 1. Закинем в...
C++ Ограничение на ввод в командной строке Здравствуйте! При написании программы, которая должна вычислять сумму целого числа и обыкновенной дроби (передаются через аргументы командной строки), возникла проблема при ограничении на ввод. Программа вычисляет сумму целого числа и дроби, также и сумму двух целых чисел вычислит, и если две дроби задать в командной строке. Каким образом можно ограничить ввод? Необходимо добиться того, что... http://www.cyberforum.ru/cpp-beginners/thread169149.html
C++ Список и его сортировка
Суть задания такова: создать односвязный список,ввести в него цифры и выдать их в отсортированном по возрастанию порядке на экран. #include <iostream> using namespace std; struct list { int key; list *next; };
Найти максимальный элемент и заменит его нулем C++
1) Дан массив а1, а2, а3,...,а5. Найти максимальный элемент и заменит его нулем. 2) Найт K=S\M^2+S^3\M^4+S^5\M^6+...+S^11\M^12, где S,M-заданны,S<0
C++ Как жестко задать частоту работы цикла http://www.cyberforum.ru/cpp-beginners/thread169120.html
пишу программу в ней основная работа будет выполнятся в цикле while (условие) { блок инструкций } как сделать так что бы цикл обрабатывался ну скажем 7 раз в секунду не больше это надо что бы я запустил свою программу а она там тихонько себе считала и мне не мешала загружая проц
C++ Найти координаты всех вершин правильного многоугольника Здрасте! Есть задача: Дан правильный N-угольник с центром в точке (X, Y) и с координатами одной из вершин X1, Y1. Найти координаты всех остальных вершин многоугольника. Может кто нибуть подскажет как она решается? Хотя бы формулы нахождения вершин? Заранее спасибо! подробнее

Показать сообщение отдельно
Demonhunterus
1 / 1 / 0
Регистрация: 20.09.2010
Сообщений: 36
25.09.2010, 15:12     Стек на базе массива
Есть код
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
#include <iostream>
#include <string>
 
using namespace std;
 
template <class T>
 
class STACK
{
private:
    T *s; int N;
public:
    STACK()
    {s=new T[5];N=0;}
    ~STACK(){}
    
    void push(T val)
    {
        s[N++]= val;
    }
    
    
    bool empty(){return (N == 0);}
    
    T pop()
    {
        return s[--N];
    }
};  
 
int main()
{
    STACK <string> s;
    int key;
    string val;
    do
    {
        system("cls");
        cout << "\tStack\t\t\t\n\n";
        cout << "1 - push\n";
        cout << "2 - pop & write\n";
        cout << "3 - exit\n\n";
        cout << "press key: ";
        cin >> key;
        switch (key)
        {
            case 1:
                {
                    cout << "\nenter element: ";
                    cin >> val;
                    s.push(val);
                    break;    
                }
            case 2:
                {
                    if (s.empty()) cout << "stack is empty..";
                    else
                    {
                        cout << "poping:\n";
                            cout << s.pop() << endl;
                    }
                    system("pause");
                    break;    
                }
            default:
                {
                    if (key == 3) cout << "exiting succesfully..\n";
                    else cout << "press only 1, 2 or 3\n";
                    system("pause");
            }                
        }
    }
    while (key != 3);
    
    return 0;
}
Вроде бы всё работет,всё отлично и красиво.Есть только вот одно "но".
C++
1
{s=new T[5];N=0;}
--- тут я задаю максимальное количество элементов в стеке = 5.Если в ходе работы программы попытаться запихнуть шестой элемент - программа вылетает.
Вопрос:
что прописать в
C++
1
2
3
4
5
6
7
case 1:
                {
                    cout << "\nenter element: ";
                    cin >> val;
                    s.push(val);
                    break;    
                }
,чтобы в случае,если стек полон,а мы попытаемся запихнуть в него на один элемент больше (как у меня - всего 5,а пытаемся задать шестой) программа не вылетала а писала "stack is full"?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru