Ir ao conteúdo
  • Cadastre-se

NceiifadoR

Membro Pleno
  • Posts

    28
  • Cadastrado em

  • Última visita

posts postados por NceiifadoR

  1. Boa noite 
    
    
    
    estou com problema dentro do algoritmo que organiza as informações de forma de pilha. Não estou conseguindo, validar se o numero é par ou impa.
    
    eu sei fazer a validação so não estou conseguindo inserir na estrutura de pilha.
      
      
    #include <stdio.h>
    #include <stdlib.h>
    
    struct N{
     int num;
     struct N *prox;
    };
    typedef struct N n;
    
    int tam;
    
    int menu(void);
    void inicia(n *PILHA);
    void opcao(n *PILHA, int op);
    void exibe(n *PILHA);
    void libera(n *PILHA);
    void push(n *PILHA);
    n *pop(n *PILHA);
    
    
    int main(void)
    {
     n *PILHA = (n *) malloc(sizeof(n));
     if(!PILHA){
      printf("Memoria cheia !\n");
      exit(1);
     }else{
     inicia(PILHA);
     int opt;
    
     do{
      opt=menu();
      opcao(PILHA,opt);
     }while(opt);
    
     free(PILHA);
     return 0;
     }
    }
    
    void inicia(n *PILHA)
    {
     PILHA->prox = NULL;
     tam=0;
    }
    
    int menu(void)
    {
     int opt;
    
     printf("Escolha a opcao\n");
     printf("0. Sair\n");
     printf("1. Zerar a Estrutura\n");
     printf("2. Exibir os Elemento \n");
     printf("3. Adicionar Elemento (PUSH)\n");
     printf("4. Remover Elementos(POP)\n");
     printf("Opcao: "); 
     scanf("%d", &opt);
    
     return opt;
    }
    
    void opcao(n *PILHA, int op)
    {
     n *tmp;
     switch(op){
      case 0:
       libera(PILHA);
       break;
    
      case 1:
       libera(PILHA);
       inicia(PILHA);
       break;
    
      case 2:
       exibe(PILHA);
       break;
    
      case 3:
       push(PILHA);
       break;
    
      case 4:
       tmp= pop(PILHA);
       if(tmp != NULL)
       printf("Removido: %3d\n\n", tmp->num);
       break;
    
      default:
       printf("Comando Invalido Tente Outra Vez...\n\n");
     }
    }
    
    int vazia(n *PILHA)
    {
     if(PILHA->prox == NULL)
      return 1;
     else
      return 0;
    }
    
    n *aloca()
    {
     n *novo=(n *) malloc(sizeof(n));
     if(!novo){
      printf("Memoria Cheia !\n");
      exit(1);
      
      
     }else{
         
      printf("Novo elemento: "); 
      scanf("%d", &novo->num);
      
       return novo; 
      }      
      
    
     }
    
    void exibe(n *PILHA)
    {
     if(vazia(PILHA)){
      printf("PILHA Vazia!\n\n");
      return ;
     }
    
     n *tmp;
     tmp = PILHA->prox;
     printf("Pilha:");
     while( tmp != NULL){
      printf("%5d", tmp->num);
      tmp = tmp->prox;
     }
     printf("\n        ");
     int count;
     for(count=0 ; count < tam ; count++)
      printf("  ^  ");
     printf("\nOrdem:");
     for(count=0 ; count < tam ; count++)
      printf("%5d", count+1);
    
    
     printf("\n\n");
    }
    
    void libera(n *PILHA)
    {
     if(!vazia(PILHA)){
      n *proxN,
         *atual;
    
      atual = PILHA->prox;
      while(atual != NULL){
       proxN = atual->prox;
       free(atual);
       atual = proxN;
      }
     }
    }
    
    void push(n *PILHA)
    {
     n *novo=aloca();
     novo->prox = NULL;
    
     if(vazia(PILHA))
      PILHA->prox=novo;
     else{
      n *tmp = PILHA->prox;
    
      while(tmp->prox != NULL)
       tmp = tmp->prox;
    
      tmp->prox = novo;
     }
     tam++;
    }
    
    
    n *pop(n *PILHA)
    {
     if(PILHA->prox == NULL){
      printf("Pilha Esta Vazia...\n\n");
      return NULL;
     }else{
      n *ultimo = PILHA->prox,
                  *penultimo = PILHA;
    
      while(ultimo->prox != NULL){
       penultimo = ultimo;
       ultimo = ultimo->prox;
      }
    
      penultimo->prox = NULL;
      tam--;
      return ultimo;
     }
    } 

     

  2. 24 minutos atrás, OPiantino disse:

    A marca brasileira é pouco conhecida e sua avaliação não é muito boa, mas vale lembrar que muito de um equipamento vem de como o usuário faz o uso, se voce for cuidadoso e cuidar bem do equipamento, garanto que lhe servirá muito bem, se voce for usuário comum, que irá apenas usar o notebook pra trabalhos e navegar na internet, pode comprar sem medo. Acho importante incentivarmos a indústria nacional, a Daten só começou a atender mercado de usuários comuns recentemente, antes ela só atendia o mercado governamental

    @OPiantino na questão de substituição de tela ? Ou outros peças específicas da marcar e fácil de encontrar ?

  3. Ola pessoal estou com uma duvida!, em Relação meu Minha Placa de Vídeo  gtx 1060 vai Gargala com meu i5 2320 3.5 ghz se vocês acharem que vai da Gargalo queria que me recomenda-se alguma outra Placa de vídeo.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!