Ir ao conteúdo
  • Cadastre-se
vida0821

C estrutura de dados em c

Recommended Posts

Boa tarde,

 

Preciso da ajuda de vocês, preciso fazer uma estrutura do tipo pilha.

 

Faça uma função que crie duas pilhas de números inteiros, você deverá fazer a soma separadamente das duas pilhas e exibir qual das pilhas tem o somatório maior e o valor encontrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tarde @vida0821

 

Nós não podemos escrever o código para você, nós só podemos lhe auxiliar tirando duvidas e corrigindo algum código que você já tenha feito.

 

Se puder postar o código que você já fez ou colocar em qual parte do exercício você está com duvida, poderemos lhe ajudar melhor :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#include <stdlib.h>
#include "Pilha.h"

int main() {
    int i = 0, x = 0, valor, dado, valor_retirado;
    struct pilha pi;
    pi.topo = 0;
    for (i = 0; i < TAMANHOPILHA; i++)
        pi.pilha = -1;
    while (x <= TAMANHOPILHA)
    {
        printf("Digite 1 a 3 conforme opcao:\n");
        printf("1: Inserir elemento Pilha \n");
        printf("2: Retirar elemento Pilha \n");
        printf("3: Imprimir Pilha \n");
        printf("4: Soma da Pilha \n");
        scanf("%d",&valor);
        switch (valor)
        {
            case 1:
                printf("Digite Valor a ser inserido: \n");
                scanf("%d",&dado);
                push(&pi,dado);
                x++;
                break;
            case 2:
                valor_retirado = pop(&pi);
                x--;
                break;
            case 3:
                imprimir(pi);
                break;
            default:
                printf("Digite o valor no intervalor de 1 a 3");
        }

    }
}


 

adicionado 0 minutos depois
#include <stdio.h>
#include <stdlib.h>
#include "Pilha.h"
void push (struct pilha *p, int info)
{
    if (p->topo < TAMANHOPILHA){
        printf(">>>>>>> INSERIR >>>>: %d", info);
        p->pilha[p->topo] = info;
        p->topo++;
    }
    else
        printf("Estouro de Pilha");
}
int pop (struct pilha *p)
{
    int valor;
    if (p->topo > 0)
    {
        p->topo--;
        valor = p->pilha[p->topo];
        p->pilha[p->topo] = -1;
        printf("<< RETIRAR <<<<< : %d\n", valor);
        return valor;
    }
    else
        printf("Pilha Vazia");
    return -1;
}

void imprimir (struct pilha p)
{
    printf("********* PILHA ************\n\n");
    for (int i =0; i <p.topo; i++)
        printf("%d",p.pilha);
    printf("\n\n");
    printf("*************************\n\n");
}

int somapilha (struct pilha p)
{
    int sum = 0;
    for (int i=0; i<p.topo; i++)
        sum = sum + p.pilha;
    return sum;

}


 

adicionado 0 minutos depois
#ifndef Pilha_h
#define Pilha_h
#include <stdlib.h>
#include <stdio.h>

#endif /* Pilha_h */
#define TAMANHOPILHA 4

struct pilha
{
    int topo;
    int pilha[TAMANHOPILHA];
};

void push (struct pilha *p, int info);
int pop (struct pilha *p);
void imprimir (struct pilha p);
int somapilha (struct pilha p);

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×