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

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

Войти
Регистрация
Восстановить пароль
 
Родион2050
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 10
#1

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

02.08.2015, 15:47. Просмотров 173. Ответов 2
Метки нет (Все метки)

Кликните здесь для просмотра всего текста
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, иначе выдает непонятные числа. Укажите пожалуйста на ошибку.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2015, 15:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает программа, моделирующая работу стека (C++):

Программа,моделирующая поведение курицы - C++
Написать программу на языке C++,моделирующую поведение курицы(Hen)пу- тём создания соответствующего класса.Каждой курице дают уникальное...

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

Программа, моделирующая эволюцию системы из N-клеток пошагово по правилам - C++
Составить программу, моделирующую эволюцию системы из N-клеток пошагово по правилам, приведенным ниже в таблице. При превышении в системе...

Почему при вводе элементов массива, программа прекращает работу или работает не так, как ожидается? - C++
При вводе элементов массива, программа прекращает работу или не правильно работает. Например если указать размер массива 10 , то ввод...

5.1. Реализовать представление стека. Работу со структурами организовать в виде текстового меню - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; typedef struct Item* pItem; struct Item { int data; pItem next; ...

Реализовать представление стека. Работу со структурами организовать в виде текстового меню. - C++
1. Реализовать представление стека. Работу со структурами организовать в виде текстового меню. 2. Дополнительно разработать следующие...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MansMI
1228 / 998 / 262
Регистрация: 08.01.2012
Сообщений: 3,650
02.08.2015, 15:58 #2
st[++top]
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2015, 16:21
Привет! Вот еще темы с ответами:

Придумать и описать создание списка или стека или очереди. И работу с ними. - C++
Помогите пожалуйста. Придумать и описать структуру некоторого сюжета (не менее пяти полей) и составить программу для создания массива...

Удаление элемента стека не работает - C++
Здравствуйте, у меня проблема с обработкой стека. Нужно ввести в стек числа и из полученного стека удалить отрицательные элементы. Вроде...

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) - C++
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:( Может кто то делал,или встречался с таким заданием: ...

Не работает реализация стека через массив - C++
Реализация стека через массив но почему то не работает. #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int const...


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

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

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