nicholas22 Posted July 1, 2020 Posted July 1, 2020 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); }
mandelacruz Posted July 1, 2020 Posted July 1, 2020 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'.
fredericopissarra Posted July 1, 2020 Posted July 1, 2020 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)...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.