Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leob

[Resolvido] erro ao imprimir Pilha

Recommended Posts

Eu fiz está pilha, mas estou com problema na hora de imprimir ela imprime apenas o ultimo valor digitado alguém pode me ajudar eu sou muito iniciante e estou com essa duvida besta.

 

#include <stdio.h>
#include <stdlib.h>


main( ){ 
typedef struct numero
   { int num;
      struct numero *proximo;
      }tiponum;

tiponum *topo, *novo, *atual;

int i;
int a;


for(i=1;i<6;i++){
printf("Digite um numero: ");
scanf("%d",&a);
   novo=malloc(sizeof(tiponum));
   novo->num=a;
  novo->proximo=NULL;
   topo=novo;
   
}   

atual=topo;
while(atual!= NULL)
{
printf("\n numero = %d",atual->num);
atual=atual->proximo;
}
getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de vermos isso me diga uma coisa??

esse malloc compilo no seu compilador??

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq do jeito q está no seu código, aki deu erro.

tive q modificar para:

novo=(tiponum*) malloc(sizeof(tiponum));

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tentei aki resolver e consegui desta maneira:

 

#include <stdio.h>
#include <stdlib.h>

typedef struct numero{
    int num;
    struct numero *proximo;
}tiponum;

void print(tiponum* Pilha)
{
  if (Pilha==NULL) return; //zerada
  printf("\n numero = %d", Pilha->num);
  print(Pilha->proximo);  /*Lista os restantes elementos.*/
}

int main( ){
    tiponum *topo=NULL, *novo, *atual;
    int i, a;
    for(i=1;i<6;i++){
        printf("Digite um numero: ");
        scanf("%d",&a);
        novo=(tiponum*) malloc(sizeof(tiponum));
        novo->num=a;
        novo->proximo=topo;
        topo=novo;
    }
    atual=topo;
    print(atual);
    system("pause");
}

OBS: Ñ USE O SYSTEM("PAUSE"); SOH USEI PQ CREIO Q AI O PROGRAMA NUM VAI SEGURAR NA TELA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi a pergunta agora, então ele tinha copilado e estava rodando o unico erro era que só impremia a ultima posição mas este funcinou certinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

é então..

pq eu tbm tava procurando pela net, alguma coisa pra imprimir a lista tendo um apontador.

ai um cara disse pra usar recursividade, ai deu nisso ;D

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.