nicholas22 Posted July 1, 2020 at 03:26 AM Share Posted July 1, 2020 at 03:26 AM Pq ao executar o programa não aparece os números do tipo float e aparece somente como inteiro? #include<stdio.h> #include<stdlib.h> struct TLDE { int dados; struct TLDE* prox; }; TLDE* inserir_no_fim( TLDE*p , float elem) { TLDE *raiz = p; TLDE* pTemp = (struct TLDE*)malloc(sizeof(struct TLDE*)); pTemp->dados = elem; pTemp->prox = NULL; if(!raiz) return pTemp; else { TLDE* pPar = p; while(p->prox) { p=p->prox; } p->prox =pTemp; return raiz; } } void exibir(TLDE* p) { if(!p) printf("Lista vazia"); else { do { printf(" %d", p->dados); p=p->prox; } while(p); } } TLDE * inverte( TLDE *l) { TLDE*r =NULL; // r é o ponteiro para a lista invertida TLDE*s =NULL; //s é o ponteiro para o ultimo elemento da lista invertida while(l) { s=r; r=l; l=l->prox; r->prox=s; } return r; } int main() { TLDE *inicializa =NULL; inicializa = inserir_no_fim(inicializa,1056985466); inicializa = inserir_no_fim(inicializa,9); inicializa = inserir_no_fim(inicializa,6.5); inicializa = inserir_no_fim(inicializa,4.5); printf("\nLista normal: "); exibir(inicializa); inicializa = inverte(inicializa); printf("\nLista invertida: "); exibir(inicializa); } Link to comment Share on other sites More sharing options...
mandelacruz Posted July 1, 2020 at 12:13 PM Share Posted July 1, 2020 at 12:13 PM Não entendi muito bem aonde não aparece os números, você não especificou, mas, se estiver falando do output no console, é porque o printf(" %d", p->dados); está com '%d' e não '%f' ou '%lf'. Link to comment Share on other sites More sharing options...
fredericopissarra Posted July 1, 2020 at 03:14 PM Share Posted July 1, 2020 at 03:14 PM Além do detalhe apontado por @mandelacruz, você declarou 'dados' como 'int' na estrutura TLDE, o que fará um 'float' ser convertido para 'int' (se possível)... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.