Ir ao conteúdo
  • Cadastre-se

Péssimo em Programar

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Tudo que Péssimo em Programar postou

  1. Olá, preciso de ajuda pelo amor de Deus de alguém para me ajudar a resolver um exercício em C usando pilha e se puder me explicar a maneira mais fácil de entender a resolvê-lo? A lógica do meu código está muito errada provavelmente, mesmo assim irei colocar ele para analisarem. Obrigado!!! Segue o problema: https://www.urionlinejudge.com.br/judge/pt/problems/view/1944 .Main #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include "pilha.h" int main() { setlocale(LC_ALL, "Portuguese"); Pilha p = Cria_pilha(); char sequencia[100], comparar[100],comparar2[100], comparar3[100], comparar4[100]; int i = 0; int opc = 0; int retorno = 0; int premio = 0; char fixa[4] = {'E','C','A','F'}; printf("MARATONA DE PROGRAMAÇÃO"); do { if ((E_vazia) == 1) { for (i=0; i<strlen(fixa); i++) { comparar = Push(p, fixa); // comparar = fixa; } printf("\nDigite a sequência de 4 letras a ser inserida: "); fflush(stdin); gets(sequencia); for (i=0; i<4; i++) { comparar2 = Push(p, sequencia); } if (strcmp (comparar, comparar2) == 0) { premio++; for (i=0; i<4; i++) { comparar = Pop(p); } } else { for (i=0; i<4; i++) { comparar = comparar2; } } printf("\nNúmero de Prémios: %d",premio); } else { { printf("\nDigite a sequência de 4 letras a ser inserida: "); fflush(stdin); gets(sequencia); } for (i=0; i<4; i++) { comparar2 = Pop(p); } for (i=0; i<4; i++) { comparar3 = comparar2; } if (strcmp (comparar2, comparar3) == 0) { premio++; } printf("Número de Prémios: %d",premio); } printf("\nDeseja inserir mais equipes? Digite 1 para sim e 0 para não: "); scanf("%d",&opc); } while(opc == 1); return 0; } .H #ifndef PILHA_H_INCLUDED #define PILHA_H_INCLUDED #define MAX 100 #include <stdio.h> #include <stdlib.h> struct pilha { int pilha[MAX]; int topo; }; typedef struct pilha* Pilha; int E_cheia(Pilha Ptp); int E_vazia(Pilha Ptp); Pilha Cria_pilha(); int Push(Pilha Ptp, int elem); int Pop(Pilha Ptp); int Top(Pilha Ptp); void Libera_pilha(Pilha Ptp); #endif // PILHA_H_INCLUDED .C #include "pilha.h" Pilha Cria_pilha() { Pilha Ptp; Ptp = (struct pilha*)malloc(sizeof(struct pilha)); Ptp->topo = -1; return Ptp; } int E_cheia(Pilha Ptp) { if (Ptp->topo == MAX-1) return 1; else return 0; } int E_vazia(Pilha Ptp) { if (Ptp->topo == -1) return 1; else return 0; } int Top(Pilha Ptp) { if (Ptp->topo == -1) return -1; else return Ptp->pilha[Ptp->topo]; } int Push(Pilha Ptp, int elem) { if (E_cheia(Ptp) == 1) return 0; else { (Ptp->topo)++; Ptp->pilha[Ptp->topo] = elem; return 1; } } int Pop(Pilha Ptp) { int elem; if (E_vazia(Ptp) == 1) return -1; else { elem = Ptp->pilha[Ptp->topo]; (Ptp->topo)--; return elem; } }

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!