Sou a Ana fiz um código para um trabalho da facul, tinha que criar uma lista simplesmente encadeada, e criar uma função onde inverteria os dados digitados pelo usuario. Só que fiz isso com numeros inteiros, e precisava ser como caracteres, eu altero para char o tipo de dado mas o que entra são números inteiro.
Pergunta
aninhasilvac
Olá, tudo bem?
Sou a Ana fiz um código para um trabalho da facul, tinha que criar uma lista simplesmente encadeada, e criar uma função onde inverteria os dados digitados pelo usuario. Só que fiz isso com numeros inteiros, e precisava ser como caracteres, eu altero para char o tipo de dado mas o que entra são números inteiro.
Código:
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <locale.h>
struct lista {
int info;
struct lista* prox;
};
typedef struct lista Lista;
Lista* lst_cria (void)
{
return NULL;
}
Lista* lst_insere (Lista* l, int i)
{
Lista* novo = (Lista*) malloc(sizeof(Lista));
novo -> info = i;
novo -> prox = l;
return novo;
}
void lst_imprime (Lista* l)
{
do {
printf("%d\t",l->info);
l = l->prox;
} while (l != NULL);
}
Lista *lst_inverte( Lista *l)
{
Lista *nova = lst_cria();
Lista *p;
for ( p = l; p; p = p->prox )
nova = lst_insere(nova, p->info);
return nova;
}
int main (void)
{
setlocale(LC_ALL, "Portuguese");
char R;
int i;
Lista* l;
l = lst_cria();
do{
printf("\n\nInforme o dado a ser inserido:");
scanf("%d",&i);
l = lst_insere(l,i);
lst_imprime(l);
printf("\n\nQual o dado que você deseja inserir?\n\n");
printf("Digite: N para NÃO ; S para SIM \n\n");
fflush(stdin);
scanf("%c",&R);
}while(R=='S'||R =='s');
if (R=='N'||R=='n')
{
printf ("Invertendo...\n\n");
Lista *invertida = lst_inverte(l);
printf("\nLista Invertida!:\n");
lst_imprime(invertida);
}
system("pause");
return 0;
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.