Ir para conteúdo
Fórum Script Brasil
  • 0

Vetor + struct + ponteiro


luthien

Pergunta

Uma biblioteca precisa realizar o registro do empréstimo dos livros, para isso precisa de um sistema que armazene os seguintes dados: ISBN (código do livro), título do livro, editora, local de publicação, data de publicação, primeiro e segundo autor. Diante das informações apresentadas, crie uma estrutura para esses dados utilizando structs e typedef (recursos da linguagem C). Depois de criar a estrutura, declare:
(a) um vetor que seja do tipo dessa estrutura e que armazene 10 (dez) livros
( B) as linhas de instruções para realizar a leitura do campo referente à data de publicação para cada um dos elementos do vetor.
© declare um ponteiro do tipo desse estrutura e faça alocação de memória para 5 células de memória utilizando a função malloc.
(d) escreva a linha de instrução que realiza a leitura do campo referente à data de publi- cação por meio do ponteiro declarado em © utilizando o operador seta.
(e) faça uma alteração em sua estrutura de forma que o campo que armazena o título do livro seja um ponteiro para char e escreva a linha de instrução que realiza a leitura do campo (lembre-se que você está trabalhando com um campo que é um ponteiro e antes de utilizá-lo deve inicializá-lo).
Eu não consegui entender mt bem o enunciado, acho q esse é o maior problema e sei q esse pedacinho de codigo q eu fiz ta cheio de erros bobos

#include <stdio.h>

typedef struct livros
{
    int ISBN;
    char titulo;
    char editora;
    char local_pub;
    char data_pub;
    char primeiro_autor;
    char segundo_autor;

} TLivros[10];

int main()
{
   int i;
   TLivros *p;

   for(i=1;i<=10;i++)
   {
       printf("Informe o titulo do livro %d :",i);
       scanf("%s",&TLivros[i].titulo);// da erro : "expected expression before TLivros"
   }

   for(i=1;i<=10;i++)
   {
       printf("Informe a data de publicacao do livro %d :",i);
       scanf("%s",&TLivros[i].data_pub);//
   }

   p=(TLivros*)malloc(5*sizeof(TLivros));

   for(i=1;i<=10;i++)
   {
       printf("Informe a data de publicacao do livro %d :",i);
       scanf("%s",&TLivros[i].data_pub);
   }


    return 0;
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Por passagem de parâmetro, se liga na declaração TLivros[10], o [10] que interfere se tu vai usar seta ou não! Havia outras coisas erradas, como a struct.

 

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

typedef struct livros
{
    int ISBN;
    char titulo[20];
    char editora[20];
    char local_pub[20];
    char data_pub[20];
    char primeiro_autor[20];
    char segundo_autor[20];
} TLivros[10];

int main()
{
    int i;
    TLivros *p;

   // p = &TLivros;

    p = (TLivros*)malloc(10*sizeof(TLivros));

    for(i=0; i<10; i++)
    {
        printf("Informe o titulo do livro %d:", i);
        scanf("%s", p->titulo);
    }

    for(i=0; i<10; i++)
    {
        printf("Informe a data de publicacao do livro %d:", i);
        scanf("%s", p->data_pub);
    }

    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

 passagem de parâmetro com struct, observe como declarei a struct TLivros!

 

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

typedef struct livros
{
    int ISBN;
    char titulo[20];
    char editora[20];
    char local_pub[20];
    char data_pub[20];
    char primeiro_autor[20];
    char segundo_autor[20];
} TLivros; 

int main()
{
    int i;
    TLivros *p;

   // p = &TLivros;

    p = (TLivros*)malloc(10*sizeof(TLivros));

    for(i=0; i<10; i++)
    {
        printf("Informe o titulo do livro %d:", i);
        scanf("%s", p.titulo);
    }

    for(i=0; i<10; i++)
    {
        printf("Informe a data de publicacao do livro %d:", i);
        scanf("%s", p.data_pub);
    }

    return 0;
}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...