1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como fazer para percorer uma lista em C??

Pessoal eu estou fazendo um programa em linguagum C, que cadasta livros A função para cadastrar os meus livros parece estár funcionando, porém a função para listar todos os livros que eu cadastrei, nao está funcionando.

Alguem conseguiria me ajudar a entender por que nao está funcionando a minha função lista_livros? MUITO OBRIGADO!

Segue codigo abaixo:



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

typedef struct livro
{
    char titulo[40];
    char assunto[40];
    char autor[40];
    int nroRegistro;

    struct livro *prox;
}Livros;

    Livros *vetor;

void inicializando()
{
    vetor = NULL;
}

void inserir_livros(int quantos)
{
    int posicao;

    Livros *vetor = (Livros *)malloc(sizeof(Livros));

    for(posicao = 0 ; posicao < quantos ; posicao++)
    {
        printf(" Digite o titulo do livro: ");
        gets(vetor[posicao].titulo);
        fflush(stdout);

        printf(" Digite o assunto: ");
        gets(vetor[posicao].assunto);
        fflush(stdout);

        printf(" Digite o nome do autor: ");
        gets(vetor[posicao].autor);
        fflush(stdout);

        printf(" \n");

        fflush(stdin);
    }
}
void listar_livros()
{
    Livros *aux;
    aux = vetor->prox;

    if(aux==NULL)
    {
        printf(" \n \n Nao exite nenhum LISTA cadastrada \n \n");
        fflush(stdout);
    }
    while(aux->prox!=NULL)
    {
       printf(" Titulo: %s", aux->titulo);
       printf("\n ");
       printf("Assunto: %s", aux->assunto);
       printf("\n ");
       printf("Autor: %s", aux->autor);

       printf("\n ");

      aux=aux->prox;
    }
}
int main()
{
    int qtd;

    printf("Quantos Livros deseja cadastrar: ");
    scanf("%d", &qtd);
    fflush(stdout);

    fflush(stdin);

    inserir_livros(qtd);

    listar_livros();
}
  • o que quer dizer não estar funcionando nesse caso? da segfault? simplesmente nao adiciona e ai lista vazio? da uma mensagem de erro?

    Paulo Silveira   25 de abr de 2013
  • Muito estranho... eu iria reclamar de tópico duplicado mas foram criados por usuários diferentes mas me parece que o código é idêntico.... http://www.guj.com.br/227-ajudem-linguagem-c---listas

    wellington.nogueira   25 de abr de 2013
  • A sim, no link do meu comentário acima, coloquei um outro link para um PDF que acredito, ajude você.

    wellington.nogueira   25 de abr de 2013
  • Muito obrigado pela Ajuda wellington

    Felipe Dan   25 de abr de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags c ou faça a sua própria pergunta.