Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2022, 14:15   #1
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию как вывести стек в правильном порядке

Код:
// Ввести последовательность символов, что
// заканчивается точкой с запетой. Вывести символы на экран в той же последовательности, в которой
// они вводились.
 
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>
#include <malloc.h>
 
struct stekkk 
{
    char sym;
    struct stekkk* next, * element, * st; 
};
struct stekkk* st, * element; 
void StvorutuStek(struct stekkk* st);
void Vulych(struct stekkk* st);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    st = NULL; // Вершина стеку
    printf("Введите последовательность символов, что заканчивается точкой с запетой \n");
    StvorutuStek(st);
    printf("Вывод элементов созданного стеку \n");
    Vulych(st);
    return 0;
}
void StvorutuStek(struct stekkk* st)
{
    char a;
    do 
    {
        a = getchar();
        element = (struct stekkk*)malloc(sizeof(struct stekkk)); 
        element->next = st;
        st = element;
        element->sym = a;
    } while (a != ';');
}
void Vulych(struct stekkk* st)
{
    do
    {
        st = element->next;
        element = st;
        putchar(st->sym);
    } while (element->next != st);
}
сейчас программа выводить в обратном порядке
ok.ko19 вне форума Ответить с цитированием
Старый 13.02.2022, 05:09   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Можно сделать рекурсивную функцию печати (вызывать эту же функцию с указателем на следующий элемент стека, а потом печатать символ текущего элемента) или "перевернуть" стек (переставить указатели в текущем стеке или создать новый стек и положить в него символы из элементов текущего стека) и распечатать текущей функцией печати.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив. Вывести вначале все четные числа в порядке возрастания их индексов, затем - все нечетные в порядке убывания.( Delphi ) simonte Помощь студентам 9 07.12.2013 06:54
В предложении из трех слов вывести слова в порядке нарастания их длины. Предложение описать как массив строк. Nilip 777 Помощь студентам 0 20.11.2013 17:32
как вывести массив в обратном порядке С++ stpategImws Помощь студентам 1 02.12.2012 19:23
как вывести элементы стека в обратном порядке ichigo9911 Общие вопросы C/C++ 4 26.03.2012 23:51
Rss лента ( как можно вывести в случайном порядке ?) nikolj JavaScript, Ajax 0 01.05.2011 11:55