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

Не работает программа, моделирующая работу стека - C++

Восстановить пароль Регистрация
 
Родион2050
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 10
02.08.2015, 15:47     Не работает программа, моделирующая работу стека #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
#include<iostream>
using namespace std;
const int MAX=10;
//////////////////////////////
class stack
{
private:
    int st[MAX];
    int top;
public:
    stack():top(0)
    {}
    void push(int fst[MAX])
    {
        for(int n=0;n<MAX;n++)
        {st[++top]=fst[n];}
    }
    int pop ()
    {
        return st[top--];
    }
};
//////////////////////////////
int main()
{
    stack s1;
    int s[MAX];
    cout<<"Enter 10 numbers: ";
    for(int n=0;n<MAX;n++)
        cin>>s[n];
    s1.push(s);
    for(int n=0;n<MAX;n++)
    {
        char ch=':';
        cout<<n+1<<ch<<s1.pop()<<endl;
    }
    return 0;
}

Программа работает только когда последнее число не больше 10, иначе выдает непонятные числа. Укажите пожалуйста на ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2015, 15:47     Не работает программа, моделирующая работу стека
Посмотрите здесь:

C++ Программа, моделирующая эволюцию системы из N-клеток пошагово по правилам
Программа с использованием объектов типа стека или очередь на C. C++
C++ Не работает реализация стека через массив
Программа моделирующая бросание монеты C++
C++ Реализовать представление стека. Работу со структурами организовать в виде текстового меню.
C++ 5.1. Реализовать представление стека. Работу со структурами организовать в виде текстового меню
C++ Программа, которая будет добавлять структуры заказчиков в стек и удалять из стека, представленного объявлением класса Stack
C++ Удаление элемента стека не работает

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MansMI
1046 / 843 / 205
Регистрация: 08.01.2012
Сообщений: 3,023
02.08.2015, 15:58     Не работает программа, моделирующая работу стека #2
st[++top]
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
02.08.2015, 16:21     Не работает программа, моделирующая работу стека #3
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
#include<iostream>
using namespace std;
//////////////////////////////
class stack
{
private:
    const int MAX;
    int* st;
    int top;
public:
    stack(int size):top(0),MAX(size)
    {
        st=new int[MAX];
        st[0]=0;
    }
    ~stack(){delete[] st;}
    bool push(int fst)
    {
        if(top<MAX)
        {
            st[top]=fst;
            top++;
            return true;
        }
        return false;
    }
    int pop()
    {
        if(top>0)
          return st[--top];
        return st[0];
    }
};
//////////////////////////////
int main()
{
    int s=0,k;
    cout<<"Enter stack size: ";
    cin>>k;
    stack s1(k);
    cout<<"Enter "<<k<<" numbers: ";
    for(int n=0;n<k;n++)
    {
        cin>>s;
        s1.push(s);
    }
    if(!s1.push(s))
        cout<<"stack full!\n"; // Демонстрация переполнения стека
    for(int n=0;n<k+1;n++) // k+1-й раз вернется значение нулевого элемента стека
    {
        char ch=':';
        cout<<n+1<<ch<<s1.pop()<<endl;
    }
    system("pause");
    return 0;
}
Yandex
Объявления
02.08.2015, 16:21     Не работает программа, моделирующая работу стека
Ответ Создать тему
Опции темы

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