Leob 0 Denunciar post Postado Setembro 23, 2009 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
quitZAUMMM 18 Denunciar post Postado Setembro 23, 2009 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
Leob 0 Denunciar post Postado Setembro 23, 2009 nao entendi a perguntar ...como assim "compilo no seu compilador" eu sou bem iniciante Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Setembro 23, 2009 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
quitZAUMMM 18 Denunciar post Postado Setembro 23, 2009 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
Leob 0 Denunciar post Postado Setembro 23, 2009 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
quitZAUMMM 18 Denunciar post Postado Setembro 23, 2009 é 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