#include <stdio.h>

#define MAX 30



int pilha[MAX]; // Pilha que armazena os códigos dos clientes

int topo = -1; // Topo da pilha



// Função para inserir um novo código de cliente na pilha

void push(int codigo) {

    if (topo == MAX - 1) { // Pilha cheia

        printf("Erro: a pilha esta cheia\n");

        return;

    }

    topo++; // Atualiza o topo da pilha

    pilha[topo] = codigo; // Insere o código na pilha

    printf("Codigo %d inserido na pilha\n", codigo);

}



// Função para remover o último código de cliente inserido na pilha

void pop() {

    if (topo == -1) { // Pilha vazia

        printf("Erro: a pilha esta vazia\n");

        return;

    }

    int codigo = pilha[topo]; // Armazena o último código inserido na pilha

    topo--; // Atualiza o topo da pilha

    printf("Codigo %d removido da pilha\n", codigo);

}



// Função para listar os códigos dos clientes armazenados na pilha

void listar() {

    printf("Codigos dos clientes na pilha: ");

    for (int i = topo; i >= 0; i--) {

        printf("%d ", pilha[i]);

    }

    printf("\n");

}



// Função principal

int main() {

    int opcao, codigo;

    while (1) {

        printf("Opcoes:\n");

        printf("1 - Inserir um novo codigo de cliente\n");

        printf("2 - Remover o ultimo codigo de cliente inserido\n");

        printf("3 - Listar os codigos dos clientes armazenados na pilha\n");

        printf("4 - Sair do programa\n");

        printf("Digite o numero da opcao desejada: ");

        scanf("%d", &opcao);

        switch (opcao) {

            case 1:

                printf("Digite o codigo do novo cliente: ");

                scanf("%d", &codigo);

                push(codigo);

                break;

            case 2:

                pop();

                break;

            case 3:

                listar();

                break;

            case 4:

                printf("Encerrando o programa...\n");

                return 0;

            default:

                printf("Opcao invalida\n");

        }

    }

    return 0;

}