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

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

Войти
Регистрация
Восстановить пароль
 
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
#1

Распечатать возрастающие последовательности заданных чисел в обратном порядке - C++

28.04.2014, 21:59. Просмотров 808. Ответов 14
Метки нет (Все метки)

Ребят, помогите, у меня такое задание: Считая, что элементами стека являются целые числа, распечатать возрастающие последовательности этих чисел в обратном порядке. Я ничего не пойму как сделать, создал стек заполнил числами, а как мне с ним работать, в нем то итераторов нет!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stack>          
#include <vector>
#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main()
{
    system("color F0");
    setlocale(LC_ALL,"Russian");
    stack<int>s;
    for(int i = 0; i < 10; ++i)
                s.push(i);  system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 21:59     Распечатать возрастающие последовательности заданных чисел в обратном порядке
Посмотрите здесь:

Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение C++
Распечатать элементы массива в обратном порядке по шесть чисел в строке C++
C++ Используя стек, распечатать слова из текстового файла в обратном порядке
Распечатать возрастающие серии последовательности в обратном порядке C++
C++ Расположить в обратном порядке часть последовательности
Вывод последовательности слов предложения в обратном порядке C++
Распечатать массив в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12513 / 7075 / 794
Регистрация: 27.09.2012
Сообщений: 17,473
Записей в блоге: 2
Завершенные тесты: 1
28.04.2014, 22:01     Распечатать возрастающие последовательности заданных чисел в обратном порядке #2
Цитата Сообщение от lawreNz Посмотреть сообщение
в нем то итераторов нет!
зато есть доступ к верхнему элементу. Для стэка этого достаточно
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
28.04.2014, 22:12  [ТС]     Распечатать возрастающие последовательности заданных чисел в обратном порядке #3
Ну хорошо, знаю я вершину стека, как мне вывести из него последовательность чисел? вот в чем загвоздка
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12513 / 7075 / 794
Регистрация: 27.09.2012
Сообщений: 17,473
Записей в блоге: 2
Завершенные тесты: 1
28.04.2014, 22:15     Распечатать возрастающие последовательности заданных чисел в обратном порядке #4
C++
1
2
3
4
   while ( !s.empty() ) {
      std::cout << s.top() << std::endl ;
      s.pop () ;
   }
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
28.04.2014, 22:19     Распечатать возрастающие последовательности заданных чисел в обратном порядке #5
Цитата Сообщение от lawreNz Посмотреть сообщение
Ну хорошо, знаю я вершину стека, как мне вывести из него последовательность чисел?
Чтобы это понять, нужно знать что такое стек. Неужели вам не объясняли?
C++
1
2
3
4
5
    while(!s.empty())
    {
        cout << s.top() << '\n';
        s.pop();
    }
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
28.04.2014, 22:22  [ТС]     Распечатать возрастающие последовательности заданных чисел в обратном порядке #6
я имел в виду свое задание: "распечатать возрастающие последовательности этих чисел в обратном порядке". а то что вы написали это просто выведение стека на экран

Добавлено через 2 минуты
Ребят, вы мне пишете куски кода, причем того который мне абсолютно не нужен, я не спрашивал вас как вывести стек на экран, прочтите мое задание, не все так просто как вы пишете
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12513 / 7075 / 794
Регистрация: 27.09.2012
Сообщений: 17,473
Записей в блоге: 2
Завершенные тесты: 1
28.04.2014, 22:24     Распечатать возрастающие последовательности заданных чисел в обратном порядке #7
Цитата Сообщение от lawreNz Посмотреть сообщение
не все так просто как вы пишете
а мы обязаны написать за Вас?
Цитата Сообщение от lawreNz Посмотреть сообщение
прочтите мое задание
прочитали
Цитата Сообщение от lawreNz Посмотреть сообщение
создал стек заполнил числами, а как мне с ним работать, в нем то итераторов нет!
и ответили как работать без итераторов.
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
28.04.2014, 22:24     Распечатать возрастающие последовательности заданных чисел в обратном порядке #8
Цитата Сообщение от lawreNz Посмотреть сообщение
выведение стека на экран
А что, по-твоему, здесь значит слово распечатать? Это ведь и есть вывод на экран. А обратный порядок обеспечивается сутью стека. Ввел ты возрастающую последовательность, вывел - в обратном порядке. Что не так?
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
28.04.2014, 22:28  [ТС]     Распечатать возрастающие последовательности заданных чисел в обратном порядке #9
Например: в стеке есть числа 12 8 4 7 5 9. Вершина стека - 12. Мне нужно вывести на экран 5 7. 4 8 12. Я не знаю как это сделать

Добавлено через 1 минуту
Croessmah, Я попросил объяснить как это сделать, просто через вершину не получится это сделать без каких-либо доп. операций, я нигде не упомянул просьбы написать код

Добавлено через 2 минуты
DrOffset, В том то и соль что последовательностей может быть несколько и между ними будут и другие элементы, которые не входят в эту последовательность. Я сначала думал создать вектор, как временное хранилище, но мне кажется это неверным решением
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
28.04.2014, 22:34     Распечатать возрастающие последовательности заданных чисел в обратном порядке #10
Цитата Сообщение от lawreNz Посмотреть сообщение
Например: в стеке есть числа 12 8 4 7 5 9. Вершина стека - 12.
Вообще-то std::stack - это LIFO (last-in first-out), поэтому вершина стека будет 9, а не 12.
Цитата Сообщение от lawreNz Посмотреть сообщение
Мне нужно вывести на экран 5 7. 4 8 12.
Девятку куда потерял?
Если имелось в виду 9 5 7 4 8 12, то оно это и делает.
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
28.04.2014, 22:41  [ТС]     Распечатать возрастающие последовательности заданных чисел в обратном порядке #11
Сори, перепутал, не то написал, в общем это не то что я имел в виду, не важно какие числа в стеке, нужно в этих числах найти положительные последовательности и вывести их на экран
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12513 / 7075 / 794
Регистрация: 27.09.2012
Сообщений: 17,473
Записей в блоге: 2
Завершенные тесты: 1
28.04.2014, 22:44     Распечатать возрастающие последовательности заданных чисел в обратном порядке #12
Извлекаете элементы по очереди и сравниваете с предыдущим извлеченным
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
28.04.2014, 22:52  [ТС]     Распечатать возрастающие последовательности заданных чисел в обратном порядке #13
DrOffset, 9-ка там не нужна так как она не входит в последовательность возрастающих чисел
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
28.04.2014, 23:08     Распечатать возрастающие последовательности заданных чисел в обратном порядке #14
Цитата Сообщение от lawreNz Посмотреть сообщение
9-ка там не нужна так как она не входит в последовательность возрастающих чисел
В таком случае четверка там тоже не нужна.
В общем см. ответ Croessmah.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2014, 10:15     Распечатать возрастающие последовательности заданных чисел в обратном порядке
Еще ссылки по теме:

C++ Дана строка символов. Распечатать ее в обратном порядке, сохранив лишь порядок следования цифр
Найти максимально длинные возрастающие последовательности чисел массива C++
C++ Напечатать в обратном порядке наименьший элемент последовательности
Ввести число типа unsigned. Распечатать двоичное представление в прямом и обратном порядке C++
Расположить символы последовательности в обратном порядке C++

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

Или воспользуйтесь поиском по форуму:
lawreNz
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 30
29.04.2014, 10:15  [ТС]     Распечатать возрастающие последовательности заданных чисел в обратном порядке #15
Сделал,вдруг кому-то пригодится
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
#include <stack>          
#include <vector>
#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main()
{
    system("color F0");
    setlocale(LC_ALL,"Russian");
    stack<int>s;
    cout<<"Введите стэк(признак конца - 99)"<<endl;
    while(true){
    int x;
    cin>>x;
    if(x!=99)//Признак конца ввода - 99
    s.push(x);
    else break;}
 
        vector<int> v;
        vector<int>::iterator iter;
        
        
        while(!s.empty())
        {
            v.push_back(s.top());           
            s.pop();
        }
        cout<<"Полученные последовательности"<<endl;
        for(int i = v.size() - 1; i > 0; --i)
        {
            if(v[i]<v[i-1])
            {
                s.push(v[i]);cout<<v[i]<<" ";
                if(v[i-1]>v[i-2])
                {s.push(v[i-1]);cout<<v[i-1]<<" ";}
                
             }
            else
            {
                cout<<"    ";continue;
            }
            if(i-1==0)
            {s.push(v[i-1]);cout<<v[i-1];}  
            
        }
        cout<<"\n\n";
        cout<<"<<<<Записали обратно в стек и вывели>>>>"<<endl;
         while(!s.empty()) {
                cout << s.top() << ' ';
                s.pop();
        }
    system("pause");
    return 0;
}
Закрывайте тему, спасибо за "помощь"
Yandex
Объявления
29.04.2014, 10:15     Распечатать возрастающие последовательности заданных чисел в обратном порядке
Ответ Создать тему
Опции темы

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