doubts C # stack

-1

Good afternoon I followed a toturial on how to make a stack link \ link

but my code does not execute 2 3 and 0

follows:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fila_teste
{
    class Program
    {
        static Boolean empilhar(int[] pilha, ref int topo, int dado)  // empilhar tem que conter a pilha e o topo
        {
            Boolean retorno = false;    // diz se nao vao conseguir receber o valor dentro da pilha
            if (topo < 10)
            {
                pilha[topo] = dado;
                topo = topo + 1;
                retorno = true; // recebeu +1
            }
            return retorno;
        }

        //static void Main(string[] args)
        //{
        //    int[] pilha = new int[10];          // criaçao de vetor 
        //    int topo = 0;        //define quantos valores estao defenidos ns pilha
        //}

        // este ja e para desempilhar
        static Boolean desempilhar(int[] pilha, ref int topo, ref int dado)  // empilhar tem que conter a pilha e o topo
        {
            Boolean retorno = false;    // diz se nao vao conseguir receber o valor dentro da pilha
            if (topo > 0)
            { topo = topo - 1;
                dado = pilha[topo];             //dado recebe topo da pilha 
                retorno = true; // recebeu +1
            }
            return retorno;
        }


        static void exibirdados(int[] pilha, int topo)       //exibe o que esta dentro da pilha quantidade
        {
        //    for (int i = 0; i < topo; i++)
        //        {

        //        Console.WriteLine(pilha[i]);
        //    }

        //}

        for (int i = topo-1; i >= 0; i--)
                {

                Console.WriteLine(pilha[i]);
            }

}


        static int exibirmenu() //exibe o menu que criei abaixo
        {
            int op = 0;
            Console.Clear(); // limpa 
            Console.WriteLine("menu de opçoes:"); //chuta as opçoes
            Console.WriteLine("1 empilhar:");    //chuta as opçoes
            Console.WriteLine("2 desempilhar:"); //chuta as opçoes
            Console.WriteLine("3 exibir pilha:");   //chuta as opçoes
            Console.WriteLine("0 sair:");   //chuta as opçoes
            Console.WriteLine("opçao: ");   //chuta as opçoes
            op = Convert.ToInt32(Console.ReadLine()); // converte op para numero pois era um inteiro 
            return op;
        }

        static void Main(string[] args)
        {
            int[] pilha = new int[10];          // criaçao de vetor 
            int topo = 0;        //define quantos valores estao defenidos ns pilha
            int valor = 0;
            int op = 0;
            string msg = ""; // mostra algo

            while (op != 4)
            {
                op = exibirmenu();
                if (op == 1)
                {


                    Console.Clear(); // limpa
                    Console.WriteLine("entrada de dados");
                    Console.Write("informe um dado");
                    valor = Convert.ToInt32(Console.ReadLine()); // converte valor em numero e le
                    msg = "erro! atingo o seu limite";
                    if (empilhar(pilha, ref topo, valor) == true) // caso seja true ele inserio
                    {
                        msg = "valor inserido corretamente na pilha";
                    }

                    Console.WriteLine(msg); // mostra a linha(no caso a mensagem)
                    Console.ReadKey();
                }
            }

            if (op == 2)

            {
                Console.Clear(); // limpa
                Console.WriteLine("saida de dados");
                msg = "erro! pilha esta vazia";
                if (desempilhar(pilha, ref topo, ref valor) == true) // caso seja true ele inserio
                {
                    msg = "valor removido da pilha foi " + valor;

                }
                Console.WriteLine(msg);
                Console.ReadKey();

            }

            if (op == 3)

            {
                Console.Clear(); // limpa
                Console.WriteLine("Dados presentes na pilha");
                exibirdados(pilha, topo);
                Console.ReadKey();
            }

            empilhar(pilha, ref topo, 10); //aqui exibe os valores no progrma
            empilhar(pilha, ref topo, 20); //aqui exibe os valores no progrma
            empilhar(pilha, ref topo, 30); //aqui exibe os valores no progrma
            desempilhar(pilha , ref topo, ref valor);   // aqui desempilha a pilha que faz referencia(ao fazer referencia altera) ao topo e valor
            exibirdados(pilha, topo);
            Console.ReadKey();
        }
    }
}

I would like a little help, thank you

note: I am new here if you think the topic is repeated and let me know go easy on me

    
asked by anonymous 14.05.2018 / 02:39

1 answer

0

On line 103, you are closing while before passing if s, just remove } and close after last if

    
14.05.2018 / 03:17