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

Duvidas com Struct


Alan Correa

Pergunta

Olá pessoal, sou iniciante em Estrutura de Dados....existe um sistema que preciso criar:

1. Uma biblioteca possui obras de ciências exatas, ciências humanas e

ciências biomédicas, totalizando 1.500 volumes, 500 de cada área. O

proprietário resolveu informatizá-la e, para tal, agrupou as informações

sobre cada livro do seguinte modo:

Código de catalogação: __________ Doado:______________

Nome da obra: _____________________________________

Nome do autor: ____________________________________

Editora: _______________Nro de páginas:_______________

a) Construa um algoritmo que declare tal estrutura e que reúna todas as

informações de todas as obras em três vetores distintos para cada área.

B) Elabore um trecho de algoritmo que, utilizando como premissa o que foi

feito no item anterior, realize uma consulta à informações. O usuário

fornecerá o código da obra e sua área. Existindo tal livro, informa seus

campos. Do contrário, envia mensagem de aviso.

c) A consulta repete-se até que o usuário introduza código finalizador com

o valor -1. Escreva um trecho de algoritmo que liste todas as obras de

cada área que representem livros doados.

d) Idem ao item anterior, porém, obras cujos livros sejam comprados e cujo

número de páginas se encontre entre 100 e 300.

e) Construa um trecho de algoritmo que efetue a exclusão de algum livro; o

usuário fornecerá o código e a área. Lembres-se de que somente pode

ser excluído um livro existente.

Eu já fiz o menu geral, o menu para cadastrare o menu de consulta...mas acredito que tem erros ...voces podem me ajudar? segue o que eu desenvolvi:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define TRUE 1

#define FALSE 0

typedef struct {

int codigoCatalogacao [10];

char doado [50];

char nomeDaObra [50];

char nomeAutor [50];

char editora [50];

int nrPaginas;

}livros;

typedef struct {

livros exatas [500];

livros humanas [500];

livros biomedicas [500];

} biblioteca;

main ()

{

biblioteca varBiblioteca;

while (1){

printf ("Menu\n");

printf ("1- Novo Cadastro\n");

printf ("2-Consulta\n");

printf ("3-Exclusão\n");

printf ("4-Sair do Programa\n");

int menuPrincipal;

switch (menuPrincipal){

case 1:

printf ("Informe Area do Conhecimento Para Cadastramento \n");

printf ("1-Biomedicas\n");

printf ("2-Humanas\n");

printf ("3-Exatas\n");

break;

int menuCadastrarAreaConehcimento;

switch (menuCadastrarAreaConehcimento) {

case 1:

printf ("CADASTRO LIVROS DE CIENCIAS BIOMETRICAS\n");

printf ("Informe Código Catalogação\n");

scanf ("%d", &biblioteca.biomedicas[0].codigoCatalogacao);

printf ("Informe se o livro foi doado (S)ou(N)?\n");

scanf ("%s", &biblioteca.biomedicas[0].doado);

printf ("Informe Nome da Obra\n");

scanf ("%s", &biblioteca.biomedicas[0].nomeDaObra);

printf ("Informe Nome do Autor\n");

scanf ("%s", &biblioteca.biomedicas[0].nomeAutor);

printf ("Informe Editora\n");

scanf ("%s", &biblioteca.biomedicas[0].editora);

printf ("Informe Numero de páginas\n");

scanf ("%d", &biblioteca.biomedicas[0].nrPaginas);

break;

case 2:

printf ("CADASTRO LIVROS DE CIENCIAS HUMANAS\n");

printf ("Informe Código Catalogação\n");

scanf ("%d", &biblioteca.humanas[0].codigoCatalogacao);

printf ("Informe se o livro foi doado (S)ou(N)?\n");

scanf ("%s", &biblioteca.humanas[0].doado);

printf ("Informe Nome da Obra\n");

scanf ("%s", &biblioteca.humanas[0].nomeDaObra);

printf ("Informe Nome do Autor\n");

scanf ("%s", &biblioteca.humanas[0].nomeAutor);

printf ("Informe Editora\n");

scanf ("%s", &biblioteca.humanas[0].editora);

printf ("Informe Numero de páginas\n");}

scanf ("%d", &biblioteca.humanas[0].nrPaginas);

break;

case 3:

printf ("CADASTRO LIVROS DE CIENCIAS EXATAS\n");

printf ("Informe Código Catalogação\n");

scanf ("%d", &biblioteca.exatas[0].codigoCatalogacao);

printf ("Informe se o livro foi doado (S)ou(N)?\n");

scanf ("%s", &biblioteca.exatas[0].doado);

printf ("Informe Nome da Obra\n");

scanf ("%s", &biblioteca.exatas[0].nomeDaObra);

printf ("Informe Nome do Autor\n");

scanf ("%s", &biblioteca.exatas[0].nomeAutor);

printf ("Informe Editora\n");

scanf ("%s", &biblioteca.exatas[0].editora);

printf ("Informe Numero de páginas\n");}

scanf ("%d", &biblioteca.exatas[0].nrPaginas);

break;

default:

printf ("opcao invalida");

}

case 2:

printf ("Area para Consulta\n");

printf (" 1 Consultar\n");

printf ("-1 Sair Consulta\n");

break;

int menuConsultar;

switch (menuConsultar) {

case 1:

printf ("Informe Area Conhecimento para Consultar\n");

printf (" 1 Biomedicas\n");

printf (" 2 Humanas\n");

printf (" 3 Exatas\n");

break;

int menuConsultarAreaConhecimento;

switch (menuConsultarAreaConhecimento){

while (!= -1){

case 1:

printf ("Consulta Titulos na Area do Conhecimento Biomedico\n");

printf ("Informe -1 para encerrar a consulta\n");

printf ("Informe Codigo Catalogação\n");

if (biblioteca.biomedicas[0].codigoCatalogacao == TRUE)

{

printf ("Codigo Catolacao%d: ", biblioteca.biomedicas[0].codigoCatalogacao);

print ("Doação%s: ", biblioteca.biomedicas[0].doado);

printf ("Nome%s: ", biblioteca.biomedicas[0].nomeDaObra);

printf ("Editora%s: ", biblioteca.biomedicas[0].editora);

printf ("Nº Paginas%d: ", biblioteca.biomedicas[0].nrPaginas);

break;

}

else

printf ("Código não cadastrado");

case 2:

printf ("Consulta Titulos na Area do Conhecimento Humanas\n");

printf ("Informe -1 para encerrar a consulta\n");

printf ("Informe Codigo Catalogação\n");

if (biblioteca.humanas[0].codigoCatalogacao == TRUE)

{

printf ("Codigo Catolacao%d: ", biblioteca.humanas[0].codigoCatalogacao);

printf ("Doação%s: ", biblioteca.humanas[0].doado);

printf ("Nome%s: ", biblioteca.humanas[0].nomeDaObra);

printf ("Editora%s: ", biblioteca.humanas[0].editora);

printf ("Nº Paginas%d: ", biblioteca.humanas[0].nrPaginas);

break;

}

else

printf ("Código não cadastrado");

case 3:

printf ("Consulta Titulos na Area do Conhecimento Exatas\n");

printf ("Informe -1 para encerrar a consulta\n");

printf ("Informe Codigo Catalogação\n");

if (biblioteca.exatas[0].codigoCatalogacao == TRUE)

{

printf ("Codigo Catolacao%d: ", &biblioteca.exatas[0].codigoCatalogacao);

printf ("Doação%s: ", biblioteca.exatas[0].doado);

printf ("Nome%s: ", biblioteca.exatas[0].nomeDaObra);

printf ("Editora%s: ", biblioteca.exatas[0].editora);

printf ("Nº Paginas%d: ", biblioteca.exatas[0].nrPaginas);

break;

}

else

printf ("Código não cadastrado");

default:

printf ("opcao invalida");

}

}

case 2:

exit (0);

default:

printf ("opcao invalida");

}

case 3:

printf ("Area para Exclusao\n");

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

A - Definição da estrutura

typedef struct {
  int codigo;
  char doado[50];
  char obra[50];
  char autor[50];
  char editora[50];
  int paginas;
} Livro;
Você vai utilizá-la assim no Main:
Livro exatas[500], humanas[500], biomedicas[500];
B - Consulta
Algoritmo Consultar(codigo, área)
  Se área = Exatas Então
    Livro = Pesquisar(exatas, codigo)
  Senão Se área = Humanas Então
    Livro = Pesquisar(humanas, codigo)
  Senão  
    Livro = Pesquisar(biomedicas, codigo);
  Fim-se

  Se Livro <> NULO Então
    Exibir(Livro);
  Senão
    Exibir("Livro não encontrado!")
  Fim-se    
Fim

Por enquanto é isto. Dê uma estudada e uma adptada no seu código e retorne pra vermos como ficou, ok? :D

Link para o comentário
Compartilhar em outros sites

  • 0
A - Definição da estrutura

typedef struct {
  int codigo;
  char doado[50];
  char obra[50];
  char autor[50];
  char editora[50];
  int paginas;
} Livro;
Você vai utilizá-la assim no Main:
Livro exatas[500], humanas[500], biomedicas[500];
B - Consulta
Algoritmo Consultar(codigo, área)
  Se área = Exatas Então
    Livro = Pesquisar(exatas, codigo)
  Senão Se área = Humanas Então
    Livro = Pesquisar(humanas, codigo)
  Senão  
    Livro = Pesquisar(biomedicas, codigo);
  Fim-se

  Se Livro <> NULO Então
    Exibir(Livro);
  Senão
    Exibir("Livro não encontrado!")
  Fim-se    
Fim

Por enquanto é isto. Dê uma estudada e uma adptada no seu código e retorne pra vermos como ficou, ok? :D

Ahh muito obrigado mesmo....vou realizar as modificações e postar....obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
A - Definição da estrutura

typedef struct {
  int codigo;
  char doado[50];
  char obra[50];
  char autor[50];
  char editora[50];
  int paginas;
} Livro;
Você vai utilizá-la assim no Main:
Livro exatas[500], humanas[500], biomedicas[500];
B - Consulta
Algoritmo Consultar(codigo, área)
  Se área = Exatas Então
    Livro = Pesquisar(exatas, codigo)
  Senão Se área = Humanas Então
    Livro = Pesquisar(humanas, codigo)
  Senão  
    Livro = Pesquisar(biomedicas, codigo);
  Fim-se

  Se Livro <> NULO Então
    Exibir(Livro);
  Senão
    Exibir("Livro não encontrado!")
  Fim-se    
Fim

Por enquanto é isto. Dê uma estudada e uma adptada no seu código e retorne pra vermos como ficou, ok? :D

Ahh muito obrigado mesmo....vou realizar as modificações e postar....obrigado!

olá...fiz algumas mudanças, mas está dificel de compilar e não sei onde está o erro....abaixo o codigo reformulado:

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

typedef struct {

int Codigo;

char Doado;

char Obra [50];

char Autor [50];

char Editora [50];

int Paginas;

}livros;

typedef struct {

livros Exatas [500];

livros Humanas [500];

livros Biomedicas [500];

} biblio;

//**********funções que serão usadas**********//

void cadastrar(int cod, int pos);

void consultar();

int relatorio();

int verifica_pos();

int verifica_cod(int cod);

int verifica_pos();

void excluir();

//**********inicio programa principal*********//

main ()

{

int opcao=0, posicao, codaux, retorno, areaConhecimento, area,codigoLivro;

biblio biblioteca;

while (1) {

puts ("********* Bliblioteca Municipal *********");

puts ("***************** MENU ******************");

printf("\n\n");

printf("1: Cadastrar\n2: Consultar\n3: Excluir\n4: Encerrar Programa");

scanf("%d", &opcao);

system("cls");

switch (opcao)

{

//CADASTRAR

case 1:{

puts ("AREA PARA CASTRO");

printf ("Informe Area do conhecimento para cadastramento do Livro");

printf ("1: Exatas\n2: Humanas\n3: Biomedicas\n");

scanf ("%d", &areaConhecimento);

//TESTA AREA DO CONHECIMENTO 1

if (areaConhecimento == 1)

{

posicao = verifica_pos();

if(posicao != -1 )

{

printf ("Informe o código do livro para cadastrar (somente numeros)");

scanf ("%d", &codaux);

fflush (stdin);

retorno = verifica_cod (codaux);

if (retorno == 1) {

cadastrar (codaux, posicao);

area = biblioteca.Exatas[0].Codigo;

}

else

printf ("\ncodigo já cadastrado");

}

}

else

printf ("não foi possivel realizar cadastro\n");

//TESTA AREA DO CONHECIMENTO 2

if (areaConhecimento == 2)

{

posicao = verifica_pos();

if(posicao != -1 )

{

printf ("Informe o código do livro para cadastrar (somente numeros)");

scanf ("%d", &codaux);

fflush (stdin);

retorno = verifica_cod (codaux);

if (retorno == 1) {

cadastrar (codaux, posicao);

codigoLivro = biblioteca.Humanas[0].Codigo;

}

else

printf ("\ncodigo já cadastrado");

}

}

else

printf ("não foi possivel realizar cadastro\n");

//TESTA AREA DO CONHECIMENTO 3

if (areaConhecimento == 3)

{

posicao = verifica_pos();

if(posicao != -1 )

{

printf ("Informe o código do livro para cadastrar (somente numeros)");

scanf ("%d", &codaux);

fflush (stdin);

retorno = verifica_cod (codaux);

if (retorno == 1) {

cadastrar (codaux, posicao);

codigoLivro = biblioteca.Biomedicas[0].Codigo;

}

else

printf ("\ncodigo já cadastrado");

}

else

printf ("não foi possivel realizar cadastro\n");

}

break;

}

//CONSULTAR

case 2:

{

consultar();

break;

}

case 3:

{

excluir ();

break;

}

case 4:

{

printf ("Programa Encerrado");

getchar();

break;

}

default:

printf ("Opcao Invalida");

break;

}

}

}

fflush(stdin);

getchar();

return 0;

//FIM FUNÇÃO MAIN

//FUNÇÃO CADASTRAR

void cadastrar (int cod, int pos)

pos = verifica_pos ();

registros [pos].cod=cod;

printf ("Informe se o livro foi doado (S)ou(N)?\n");

scanf ("%c", &biblioteca.Biomedicas[0].Doado );

printf ("Informe Nome da Obra\n");

scanf ("%s", biblioteca.Biomedicas[0].Obra);

printf ("Informe Nome do Autor\n");

scanf ("%s", biblioteca.Biomedicas[0].Autor);

printf ("Informe Editora\n");

scanf ("%s", biblioteca.Biomedicas[0].Editora);

printf ("Informe Numero de páginas\n");

scanf ("%d", &biblioteca.Biomedicas[0].Paginas);

printf ("Cadastro efetuado com Sucesso");

}//FIM FUNÇÃO CADASTRAR

//FUNÇÃO CONSULTAR

void consultar ()

int cont = 0, cod;

puts("AREA PARA CONSULTAS");

puts ("Enter com -1 para encerrar a consulta);

printf("Entre com o Codigo");

scanf ("%d", &cod);

while (cod != -1)

{

if (registros [cont].cod == cod{

if (registros [cont].vazio == 1{

printf ("\nLivro doado %s ", registros[cont].Doado);

printf ("\nNome Livro %s ", registros[cont].Obra);

printf ("\nNome Autor %s ", registros[cont].Autor);

printf ("\nNome Editora %s ", registros[cont].Editora);

printf ("\nNumero de Paginas %s ", registros[cont].Paginas);

printf("\n");

fflush(stdin);

getchar();

return 0;

break;

}

}

cont ++;

if (cont > 500)

printf ("Codigo não encontrado");

}

}//FIM FUNÇÃO CONSULTAR

//FUNÇÃO VERIFICA POSIÇÃO

int verifica_posicao ()

{

int cont =0;

while (cont <=500)

{

if (registros [cont].vazio == 0)

return cont;

cont ++;

}

return (-1);

}//FIM FUNÇÃO VERIFICA POSIÇÃO

//FUNÇÃO VERIFICA CODIGO

int verifica_cod (int cod)

{

int cont = 0;

while (cont <=500){

if (registros [cont].cod == cod)

return (0);

cont ++;

}

return (-1);

}//FIM DA FUNÇÃO VERIFICA CODIGO

//FUNÇÃO EXCLUIR

void excluir()

{

int cod, cont =0;

char resp;

printf ("Informe o Codido que deseja excluir");

scanf ("%d", &cod);

while (cont <=500)

}

if (registros[cont].cod == cod)

if (registros[cont].vazio == 1)

{

printf ("\nLivro doado %s ", registros[cont].Doado);

printf ("\nNome Livro %s ", registros[cont].Obra);

printf ("\nNome Autor %s ", registros[cont].Autor);

printf ("\nNome Editora %s ", registros[cont].Editora);

printf ("\nNumero de Paginas %s ", registros[cont].Paginas);

getchar();

printf ("Deseja Realmente Excluir? (s) ou (n)?");

if (resp == 'S' || resp == 's')

{

registros[cont].vazio = 0;

printf ("Exclusao realizada com sucesso");

break;

}

else if (resp == 'N' || resp == 'n')

printf ("Exclusao Cancelada\n");

break;

}

}

cont ++;

if (cont < 500)

printf ("Codigo não encontrado");

}

fflush(stdin);

getchar();

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Allan,

Tá dificil mesmo de compilar.

Primeiro, tentar escrever usando uma identação que facilite inclusive os pedidos de ajuda no forum.

Tenta postar seu código entre as tags

[ code ] (sem os espaços)

...

[ /code ] (sem os espaços)

Ainda tem coisa pra você consertar no seu código, principalmente de lógica.
Se continuar com dúvidas avisa.

Abs


/*
COMENTARIOS:
0) Sua identação não permitiu ver que chaves e parenteses estão no lugar errado ou faltando
1) Na funcao main você faz codigolivro = mas não usa ela em lugar nenhum
2) Mesma coisa pra variavel area
3) Nas demais funções você usa "registros[...]" mas ela não foi definida em lugar nenhum
4) As variaveis biblioteca também não foi definida
5) Faltou fechar aspas no segundo puts da funcao consultar
6) A funcao consultar não pode retornar um valor porque foi definida como void (não pode usar return 0)
7) A funcao excluir tb não pode ter return 0 ou deve mudar o void por int.
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

typedef struct 
{
int Codigo;
char Doado;
char Obra [50];
char Autor [50];
char Editora [50];
int Paginas;
}livros;

typedef struct 
{
livros Exatas [500];
livros Humanas [500];
livros Biomedicas [500];
} biblio; 

//**********funções que serão usadas**********//
void cadastrar(int cod, int pos);
void consultar();
int relatorio();
int verifica_pos();
int verifica_cod(int cod);
int verifica_pos();
void excluir();

//**********inicio programa principal*********//
int main ()
{
    int opcao=0, posicao, codaux, retorno, areaConhecimento, area,codigoLivro;
    biblio biblioteca;

    while (1) 
        {
        puts ("********* Bliblioteca Municipal *********");
        puts ("***************** MENU ******************");
        printf("\n\n");
        printf("1: Cadastrar\n2: Consultar\n3: Excluir\n4: Encerrar Programa"); 
        scanf("%d", &opcao);
        system("cls");
        switch (opcao)
            { 
            //CADASTRAR 
            case 1:
                {
                puts ("AREA PARA CASTRO");
                printf ("Informe Area do conhecimento para cadastramento do Livro");
                printf ("1: Exatas\n2: Humanas\n3: Biomedicas\n");
                scanf ("%d", &areaConhecimento);
                //TESTA AREA DO CONHECIMENTO 1
                if (areaConhecimento == 1)
                    {
                    posicao = verifica_pos();
                    if(posicao != -1 ) 
                        { 
                        printf ("Informe o código do livro para cadastrar (somente numeros)");
                        scanf ("%d", &codaux);
                        fflush (stdin);
                        retorno = verifica_cod (codaux);
                        if (retorno == 1) 
                            {
                            cadastrar (codaux, posicao);
                            area = biblioteca.Exatas[0].Codigo; 
                            }
                        else
                            printf ("\ncodigo já cadastrado");
                        }
                    }
                else
                    printf ("não foi possivel realizar cadastro\n");
                //TESTA AREA DO CONHECIMENTO 2 
                if (areaConhecimento == 2)
                    {
                    posicao = verifica_pos();
                    if(posicao != -1 ) 
                        { 
                        printf ("Informe o código do livro para cadastrar (somente numeros)");
                        scanf ("%d", &codaux);
                        fflush (stdin);
                        retorno = verifica_cod (codaux);
                        if (retorno == 1) 
                            {
                            cadastrar (codaux, posicao);
                            codigoLivro = biblioteca.Humanas[0].Codigo;
                            }
                        else
                            printf ("\ncodigo já cadastrado");
                        }
                    }
                else
                    printf ("não foi possivel realizar cadastro\n"); 

                //TESTA AREA DO CONHECIMENTO 3 
                if (areaConhecimento == 3)
                    {
                    posicao = verifica_pos();
                    if(posicao != -1 ) 
                        { 
                        printf ("Informe o código do livro para cadastrar (somente numeros)");
                        scanf ("%d", &codaux);
                        fflush (stdin);
                        retorno = verifica_cod (codaux);
                        if (retorno == 1) 
                            {
                            cadastrar (codaux, posicao);
                            codigoLivro = biblioteca.Biomedicas[0].Codigo;
                            }
                        else
                            printf ("\ncodigo já cadastrado");
                        }
                    else
                        printf ("não foi possivel realizar cadastro\n"); 
                    }
                break;
                } 
            //CONSULTAR
            case 2:
                {
                consultar();
                break; 
                }
            case 3:
                {
                excluir ();
                break;
                }
            case 4:
                {
                printf ("Programa Encerrado");
                getchar();
                break;
                }

            default:
                printf ("Opcao Invalida");
            break;
            }
        }
    fflush(stdin);
    getchar();
    return 0;
    //FIM FUNÇÃO MAIN
}

//FUNÇÃO CADASTRAR
void cadastrar (int cod, int pos)
{
    pos = verifica_pos ();
    registros [pos].cod=cod;
    printf ("Informe se o livro foi doado (S)ou(N)?\n");
    scanf ("%c", &biblioteca.Biomedicas[0].Doado );
    printf ("Informe Nome da Obra\n");
    scanf ("%s", biblioteca.Biomedicas[0].Obra);
    printf ("Informe Nome do Autor\n");
    scanf ("%s", biblioteca.Biomedicas[0].Autor);
    printf ("Informe Editora\n");
    scanf ("%s", biblioteca.Biomedicas[0].Editora);
    printf ("Informe Numero de páginas\n");
    scanf ("%d", &biblioteca.Biomedicas[0].Paginas);
    printf ("Cadastro efetuado com Sucesso");
}//FIM FUNÇÃO CADASTRAR

//FUNÇÃO CONSULTAR
void consultar ()
{
    int cont = 0, cod;
    puts("AREA PARA CONSULTAS");
    puts ("Enter com -1 para encerrar a consulta");
    printf("Entre com o Codigo");
    scanf ("%d", &cod);

    while (cod != -1)
    {
    if (registros [cont].cod == cod)
        {
        if (registros [cont].vazio == 1)
            {
            printf ("\nLivro doado %s ", registros[cont].Doado);
            printf ("\nNome Livro %s ", registros[cont].Obra);
            printf ("\nNome Autor %s ", registros[cont].Autor);
            printf ("\nNome Editora %s ", registros[cont].Editora);
            printf ("\nNumero de Paginas %s ", registros[cont].Paginas);
            printf("\n");
            fflush(stdin);
            getchar();
            break;
            }
        }
    cont ++;
    if (cont > 500)
    printf ("Codigo não encontrado");
    }
}//FIM FUNÇÃO CONSULTAR

//FUNÇÃO VERIFICA POSIÇÃO
int verifica_posicao ()
{
    int cont =0;
    while (cont <=500)
        {
        if (registros [cont].vazio == 0)
            return cont;
        cont ++;
        }
    return (-1);
}//FIM FUNÇÃO VERIFICA POSIÇÃO

//FUNÇÃO VERIFICA CODIGO
int verifica_cod (int cod)
{
    int cont = 0;
    while (cont <=500)
        {
        if (registros [cont].cod == cod)
            return (0);
        cont ++;
        }
    return (-1);
}//FIM DA FUNÇÃO VERIFICA CODIGO

//FUNÇÃO EXCLUIR
void excluir()
{
    int cod, cont =0;
    char resp;
    printf ("Informe o Codido que deseja excluir");
    scanf ("%d", &cod);
    while (cont <=500)
        {
        if (registros[cont].cod == cod)
            if (registros[cont].vazio == 1)
            {
            printf ("\nLivro doado %s ", registros[cont].Doado);
            printf ("\nNome Livro %s ", registros[cont].Obra);
            printf ("\nNome Autor %s ", registros[cont].Autor);
            printf ("\nNome Editora %s ", registros[cont].Editora);
            printf ("\nNumero de Paginas %s ", registros[cont].Paginas);
            getchar();

            printf ("Deseja Realmente Excluir? (s) ou (n)?");
            if (resp == 'S' || resp == 's')
                {
                registros[cont].vazio = 0;
                printf ("Exclusao realizada com sucesso");
                break;
                }
            else if (resp == 'N' || resp == 'n')
                printf ("Exclusao Cancelada\n");
            break;
            }
        cont ++;
        if (cont < 500)
            printf ("Codigo não encontrado");
        }
    fflush(stdin);
    getchar();
    return;
}

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Allan,

Tá dificil mesmo de compilar.

Primeiro, tentar escrever usando uma identação que facilite inclusive os pedidos de ajuda no forum.

Tenta postar seu código entre as tags

[ code ] (sem os espaços)

...

[ /code ] (sem os espaços)

Ainda tem coisa pra você consertar no seu código, principalmente de lógica.
Se continuar com dúvidas avisa.

Abs


/*
COMENTARIOS:
0) Sua identação não permitiu ver que chaves e parenteses estão no lugar errado ou faltando
1) Na funcao main você faz codigolivro = mas não usa ela em lugar nenhum
2) Mesma coisa pra variavel area
3) Nas demais funções você usa "registros[...]" mas ela não foi definida em lugar nenhum
4) As variaveis biblioteca também não foi definida
5) Faltou fechar aspas no segundo puts da funcao consultar
6) A funcao consultar não pode retornar um valor porque foi definida como void (não pode usar return 0)
7) A funcao excluir tb não pode ter return 0 ou deve mudar o void por int.
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

typedef struct 
{
int Codigo;
char Doado;
char Obra [50];
char Autor [50];
char Editora [50];
int Paginas;
}livros;

typedef struct 
{
livros Exatas [500];
livros Humanas [500];
livros Biomedicas [500];
} biblio; 

//**********funções que serão usadas**********//
void cadastrar(int cod, int pos);
void consultar();
int relatorio();
int verifica_pos();
int verifica_cod(int cod);
int verifica_pos();
void excluir();

//**********inicio programa principal*********//
int main ()
{
    int opcao=0, posicao, codaux, retorno, areaConhecimento, area,codigoLivro;
    biblio biblioteca;

    while (1) 
        {
        puts ("********* Bliblioteca Municipal *********");
        puts ("***************** MENU ******************");
        printf("\n\n");
        printf("1: Cadastrar\n2: Consultar\n3: Excluir\n4: Encerrar Programa"); 
        scanf("%d", &opcao);
        system("cls");
        switch (opcao)
            { 
            //CADASTRAR 
            case 1:
                {
                puts ("AREA PARA CASTRO");
                printf ("Informe Area do conhecimento para cadastramento do Livro");
                printf ("1: Exatas\n2: Humanas\n3: Biomedicas\n");
                scanf ("%d", &areaConhecimento);
                //TESTA AREA DO CONHECIMENTO 1
                if (areaConhecimento == 1)
                    {
                    posicao = verifica_pos();
                    if(posicao != -1 ) 
                        { 
                        printf ("Informe o código do livro para cadastrar (somente numeros)");
                        scanf ("%d", &codaux);
                        fflush (stdin);
                        retorno = verifica_cod (codaux);
                        if (retorno == 1) 
                            {
                            cadastrar (codaux, posicao);
                            area = biblioteca.Exatas[0].Codigo; 
                            }
                        else
                            printf ("\ncodigo já cadastrado");
                        }
                    }
                else
                    printf ("não foi possivel realizar cadastro\n");
                //TESTA AREA DO CONHECIMENTO 2 
                if (areaConhecimento == 2)
                    {
                    posicao = verifica_pos();
                    if(posicao != -1 ) 
                        { 
                        printf ("Informe o código do livro para cadastrar (somente numeros)");
                        scanf ("%d", &codaux);
                        fflush (stdin);
                        retorno = verifica_cod (codaux);
                        if (retorno == 1) 
                            {
                            cadastrar (codaux, posicao);
                            codigoLivro = biblioteca.Humanas[0].Codigo;
                            }
                        else
                            printf ("\ncodigo já cadastrado");
                        }
                    }
                else
                    printf ("não foi possivel realizar cadastro\n"); 

                //TESTA AREA DO CONHECIMENTO 3 
                if (areaConhecimento == 3)
                    {
                    posicao = verifica_pos();
                    if(posicao != -1 ) 
                        { 
                        printf ("Informe o código do livro para cadastrar (somente numeros)");
                        scanf ("%d", &codaux);
                        fflush (stdin);
                        retorno = verifica_cod (codaux);
                        if (retorno == 1) 
                            {
                            cadastrar (codaux, posicao);
                            codigoLivro = biblioteca.Biomedicas[0].Codigo;
                            }
                        else
                            printf ("\ncodigo já cadastrado");
                        }
                    else
                        printf ("não foi possivel realizar cadastro\n"); 
                    }
                break;
                } 
            //CONSULTAR
            case 2:
                {
                consultar();
                break; 
                }
            case 3:
                {
                excluir ();
                break;
                }
            case 4:
                {
                printf ("Programa Encerrado");
                getchar();
                break;
                }

            default:
                printf ("Opcao Invalida");
            break;
            }
        }
    fflush(stdin);
    getchar();
    return 0;
    //FIM FUNÇÃO MAIN
}

//FUNÇÃO CADASTRAR
void cadastrar (int cod, int pos)
{
    pos = verifica_pos ();
    registros [pos].cod=cod;
    printf ("Informe se o livro foi doado (S)ou(N)?\n");
    scanf ("%c", &biblioteca.Biomedicas[0].Doado );
    printf ("Informe Nome da Obra\n");
    scanf ("%s", biblioteca.Biomedicas[0].Obra);
    printf ("Informe Nome do Autor\n");
    scanf ("%s", biblioteca.Biomedicas[0].Autor);
    printf ("Informe Editora\n");
    scanf ("%s", biblioteca.Biomedicas[0].Editora);
    printf ("Informe Numero de páginas\n");
    scanf ("%d", &biblioteca.Biomedicas[0].Paginas);
    printf ("Cadastro efetuado com Sucesso");
}//FIM FUNÇÃO CADASTRAR

//FUNÇÃO CONSULTAR
void consultar ()
{
    int cont = 0, cod;
    puts("AREA PARA CONSULTAS");
    puts ("Enter com -1 para encerrar a consulta");
    printf("Entre com o Codigo");
    scanf ("%d", &cod);

    while (cod != -1)
    {
    if (registros [cont].cod == cod)
        {
        if (registros [cont].vazio == 1)
            {
            printf ("\nLivro doado %s ", registros[cont].Doado);
            printf ("\nNome Livro %s ", registros[cont].Obra);
            printf ("\nNome Autor %s ", registros[cont].Autor);
            printf ("\nNome Editora %s ", registros[cont].Editora);
            printf ("\nNumero de Paginas %s ", registros[cont].Paginas);
            printf("\n");
            fflush(stdin);
            getchar();
            break;
            }
        }
    cont ++;
    if (cont > 500)
    printf ("Codigo não encontrado");
    }
}//FIM FUNÇÃO CONSULTAR

//FUNÇÃO VERIFICA POSIÇÃO
int verifica_posicao ()
{
    int cont =0;
    while (cont <=500)
        {
        if (registros [cont].vazio == 0)
            return cont;
        cont ++;
        }
    return (-1);
}//FIM FUNÇÃO VERIFICA POSIÇÃO

//FUNÇÃO VERIFICA CODIGO
int verifica_cod (int cod)
{
    int cont = 0;
    while (cont <=500)
        {
        if (registros [cont].cod == cod)
            return (0);
        cont ++;
        }
    return (-1);
}//FIM DA FUNÇÃO VERIFICA CODIGO

//FUNÇÃO EXCLUIR
void excluir()
{
    int cod, cont =0;
    char resp;
    printf ("Informe o Codido que deseja excluir");
    scanf ("%d", &cod);
    while (cont <=500)
        {
        if (registros[cont].cod == cod)
            if (registros[cont].vazio == 1)
            {
            printf ("\nLivro doado %s ", registros[cont].Doado);
            printf ("\nNome Livro %s ", registros[cont].Obra);
            printf ("\nNome Autor %s ", registros[cont].Autor);
            printf ("\nNome Editora %s ", registros[cont].Editora);
            printf ("\nNumero de Paginas %s ", registros[cont].Paginas);
            getchar();

            printf ("Deseja Realmente Excluir? (s) ou (n)?");
            if (resp == 'S' || resp == 's')
                {
                registros[cont].vazio = 0;
                printf ("Exclusao realizada com sucesso");
                break;
                }
            else if (resp == 'N' || resp == 'n')
                printf ("Exclusao Cancelada\n");
            break;
            }
        cont ++;
        if (cont < 500)
            printf ("Codigo não encontrado");
        }
    fflush(stdin);
    getchar();
    return;
}

obrigado mesmo pela ajuda e pelas dicas,

desculpa minha inexperiencia e minha bagunça no código...é que estou começando neste semestre a cadeira de estrutura de dados e só tive 4 aulas.

mas vou arrumar e seguir as orientações de voces qu é muito importante pra mim.

obrigado. logo em seguida eu posto o código melhorado.

Link para o comentário
Compartilhar em outros sites

  • 0

olá...

precisei trabalhar muito em cima do codigo e arrumar bastante coisa...tentei "limpar" e fazer mais enxuto...mas ainda sim deu trabalho e não compila...

[codigo]

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

#define TAM_LISTA 500

typedef struct {

int Codigo;

char Doado;

char Obra [50];

char Autor [50];

char Editora [50];

int Paginas;

}livros;

typedef struct {

livros Exatas [500];

livros Humanas [500];

livros Biomedicas [500];

} biblio;

//função cadastrar

void cadastrar ()

{

printf("CADASTRAR LIVROS\n\n");

printf("informe codigo: ");

fflush(stdin);

scanf("%d", &livros.Codigo[0]);

printf("o livro foi doado s/n ?");

fflush(stdin);

scanf("%c", &livros.Doado[0]);

printf("informe nome do livro: ");

fflush(stdin);

scanf("%c", livros.Obra[0]);

printf("informe nome do autor: ");

fflush(stdin);

scanf("%c", &livros.Autor[0]);

printf("informe editora: ");

fflush(stdin);

scanf("%c", &livros.Editora[0]);

printf("informe numero de paginas: ");

fflush(stdin);

scanf("%d", &livros.Paginas[0]);

printf("CADASTRO REALIZADO COM SUCESSO");

fflush(stdin);

getchar();

}

//função exibir

void exibir ()

{

printf("CONSULTA DE LIVROS");

printf("codigo: %d\n", livros.Codigo[0]);

printf("doado: %c\n", livros.Doado[0]);

printf("nome do livro: %c\n", livros.Obra[0]);

printf("nome do autor: %c\n", livros.Autor[0]);

printf("editora: %c\n", livros.Editora[0]);

printf("numero de paginas: %d\n", livros.Paginas[0]);

}

//função main

int main()

{

biblio Biblioteca;

int i, op, op1;

memset(&Biblioteca, 0x00, sizeof(biblio));

while(1)

{

system("cls");

printf("MENU\n\n");

printf("1:cadastrar\n2:consultar\n3:Excluir\n4:encerra programa\n");

printf("digite sua opção");

fflush(stdin);

scanf("%d", &op);

switch (op)

{

case 1:{

system("cls");

printf("NOVO CADASTRO");

printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n");

printf("digite sua opcao");

fflush(stdin);

scanf("%d", &op1);

switch (op1)

{

case 1:

for(i=0; i<TAM_LISTA; i++)

if (! Biblioteca.Biomedicas.Codigo)

break;

cadastrar(&Biblioteca.Biomedicas;

break;

case 2:

for(i=0; i<TAM_LISTA; i++)

if (! Biblioteca.Humanas.Codigo)

break

cadastrar (&Biblioteca.Humanas);

break;

case 3:

for(i=0; i<TAM_LISTA; i++)

if (! Biblioteca.Exatas.Codigo)

break;

cadastrar (&Biblioteca.Exatas);

break;

}

}

break;

case 2:{

int nCodigo;

sytem("cls");

printf("NOVO CONSULTA");

printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n");

printf("digite sua opcao");

fflush(stdin);

scanf("%d", &op1);

if (op1 >=1 || op2 <=3)

{

fflush(stdin);

printf("digite codigo");

scanf("%d", nCodigo);

}

switch (op1)

{

case 1:

for(i=0; i<TAM_LISTA; i++)

if (Biblioteca.Biomedicas.Codigo == nCodigo)

{

exibir (&Biblioteca.Biomedicas);

break;

}

else

printf("\n\ncodigo não cadastrado");

break;

case 2:

for (i=0; i<TAM_LISTA; i++)

if (Biblioteca.Humanas.Codigo == nCodigo)

{

exibir (&Biblioteca.Humanas);

break;

}

else

printf("\n\ncodigo não cadastrado");

break;

case 3:

for (i=0; i<TAM_LISTA; i++)

if (Biblioteca.Exatas.Codigo == nCodigo)

{

exibir (&Biblioteca.Exatas);

break;

}

else

printf("\n\ncodigo não cadastrado");

break;

}

}

case 3:{

int nCodigo;

system ("cls");

printf("NOVO EXCLUSAO");

printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n");

printf("digite sua opcao");

fflush(stdin);

scanf("%d", &op1);

if (op1 >=1 || op2 <=3)

{

fflush(stdin);

printf("\n\ndigite o codigo");

scanf("%d", &nCodigo);

}

switch (op1)

{

case 1:

for (i=0; i<TAM_LISTA; i++)

if (Biblioteca.Biomedicas.Codigo == nCodigo)

{

memset(Biblioteca.Biomedicas, 0x00, sizeof(livros));

break;

}

case 2:

for (i=0; i<TAM_LISTA; i++)

if (Biblioteca.Humanas.Codigo == nCodigo)

{

memset(Biblioteca.Humanas, 0x00, sizeof(livros));

break;

}

case 3:

for (i=0; i<TAM_LISTA; i++)

if (Biblioteca.Exatas.Codigo == nCodigo)

{

memset(Biblioteca.Exatas, 0x00, sizeof(livros));

break;

}

break;

}

}

case 4:

{

printf ("encerrando sistema");

exit (0);

break;

}

default:

{

printf ("Opcao invalida");

break;

}

}

break;

return 0;

}

[/codigo]

ajudas e dicas são bem vindas.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Alan

Tinha muita coisa errada no seu código, mas agora compila e executa.

Tem que melhorar um pouco o fluxo, mas tá bom.

Só peço que você tente melhorar sua identação pra facilitar inclusive sua vizualização.

você confunde um pouco o uso de %c com %s. Cuidado!!!!

Mudei o typedef de livros pra LIVROS pra aproveitar os lugares onde você já tinha digitado livros.Codigo e etc.

você não pode indexar livros.codigo[0] porque ele não é um vetor, o mesmo vale pra outros pontos onde você fez isso.

As funções cadastrar e exibir deveriam receber um ponteiro para o registro passado nas chamadas.

Faltou colocar uma pausa em alguns pontos pra que o usuário possa ver o que foi exibido na tela.

Sugiro que você compare linha a linha os códigos pra ver as diferença e em caso de dúvidas posta ai que a gente te ajuda.

Bons estudos.

Abs

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define TAM_LISTA 500

typedef struct 
{
    int Codigo;
    char Doado;
    char Obra [50];
    char Autor [50];
    char Editora [50];
    int Paginas;
}LIVROS;

typedef struct 
{
    LIVROS Exatas [TAM_LISTA + 1];
    LIVROS Humanas [TAM_LISTA + 1];
    LIVROS Biomedicas [TAM_LISTA + 1];
} biblio; 

//função cadastrar
void cadastrar(LIVROS *livros)
{
    printf("CADASTRAR LIVROS\n\n");
    printf("informe codigo: ");
    fflush(stdin);
    scanf("%d", &livros->Codigo);

    printf("o livro foi doado s/n ? ");
    fflush(stdin);
    scanf("%c", &livros->Doado);

    printf("informe nome do livro: ");
    fflush(stdin);
    scanf("%s", livros->Obra);

    printf("informe nome do autor: ");
    fflush(stdin);
    scanf("%s", &livros->Autor);

    printf("informe editora: ");
    fflush(stdin);
    scanf("%s", &livros->Editora);

    printf("informe numero de paginas: ");
    fflush(stdin);
    scanf("%d", &livros->Paginas);

    printf("CADASTRO REALIZADO COM SUCESSO");
    fflush(stdin);
    getchar();
}

//função exibir
void exibir (LIVROS *livros)
{
    printf("CONSULTA DE LIVROS\n\n");
    printf("codigo: %d\n", livros->Codigo);
    printf("doado: %c\n", livros->Doado);
    printf("nome do livro: %s\n", livros->Obra);
    printf("nome do autor: %s\n", livros->Autor);
    printf("editora: %s\n", livros->Editora);
    printf("numero de paginas: %d\n", livros->Paginas);
    fflush(stdin);
    getch();
}

//função main
int main()
{
    biblio Biblioteca;
    int i, op, op1;

    memset(&Biblioteca, 0x00, sizeof(biblio));

    while(1)
        {
        system("cls");
        printf("MENU\n\n");
        printf("1:cadastrar\n2:consultar\n3:Excluir\n4:encerra programa\n\n");

        printf("digite sua opcao: ");
        fflush(stdin);
        scanf("%d", &op);

        switch (op)
            {
            case 1:
                {
                system("cls");
                printf("NOVO CADASTRO\n\n");
                printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n");

                printf("digite sua opcao: ");
                fflush(stdin);
                scanf("%d", &op1);

                switch (op1)
                    {
                    case 1:
                        for(i=0; i<TAM_LISTA; i++)
                            if (!Biblioteca.Biomedicas[i].Codigo)
                                break;
                        cadastrar(&Biblioteca.Biomedicas[i]);
                    break;
                    case 2:
                        for(i=0; i<TAM_LISTA; i++)
                            if (! Biblioteca.Humanas[i].Codigo)
                                break;
                        cadastrar (&Biblioteca.Humanas[i]);
                    break;
                    case 3:
                        for(i=0; i<TAM_LISTA; i++)
                            if (! Biblioteca.Exatas[i].Codigo)
                                break;
                        cadastrar (&Biblioteca.Exatas[i]);
                    break;
                    }
                }
            break;
            case 2:
                {
                int nCodigo;
                system("cls");
                printf("NOVO CONSULTA\n\n");
                printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n");

                printf("digite sua opcao: ");
                fflush(stdin);
                scanf("%d", &op1);
                if (op1 >=1 || op1 <=3)
                    {
                    fflush(stdin);
                    printf("digite codigo: ");
                    scanf("%d", &nCodigo);
                    }
                switch (op1)
                    {
                    case 1:
                        for(i=0; i<TAM_LISTA; i++)
                            if (Biblioteca.Biomedicas[i].Codigo == nCodigo)
                                {
                                exibir (&Biblioteca.Biomedicas[i]);
                                break;
                                }
                            else
                                {
                                printf("\n\ncodigo não cadastrado");
                                fflush(stdin);
                                getch();
                                }
                    break;
                    case 2:
                        for (i=0; i<TAM_LISTA; i++)
                            if (Biblioteca.Humanas[i].Codigo == nCodigo)
                                {
                                exibir (&Biblioteca.Humanas[i]);
                                break;
                                }
                            else
                                {
                                printf("\n\ncodigo não cadastrado");
                                fflush(stdin);
                                getch();
                                }
                    break;
                    case 3:
                        for (i=0; i<TAM_LISTA; i++)
                            if (Biblioteca.Exatas[i].Codigo == nCodigo)
                                {
                                exibir (&Biblioteca.Exatas[i]);
                                break;
                                }
                            else
                                {
                                printf("\n\ncodigo não cadastrado");
                                fflush(stdin);
                                getch();
                                }
                    break; 
                    }
                }
            case 3:
                {
                int nCodigo;
                system ("cls");
                printf("NOVO EXCLUSAO\n\n");
                printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n");

                printf("digite sua opcao: ");
                fflush(stdin);
                scanf("%d", &op1);
                if (op1 >=1 || op1 <=3)
                    {
                    fflush(stdin);
                    printf("\n\ndigite o codigo ");
                    scanf("%d", &nCodigo);
                    }
                switch (op1)
                    {
                    case 1:
                        for (i=0; i<TAM_LISTA; i++)
                            if (Biblioteca.Biomedicas[i].Codigo == nCodigo)
                                {
                                memset(&Biblioteca.Biomedicas[i], 0x00, sizeof(LIVROS));
                                break;
                                } 
                    case 2:
                        for (i=0; i<TAM_LISTA; i++)
                            if (Biblioteca.Humanas[i].Codigo == nCodigo)
                                {
                                memset(&Biblioteca.Humanas[i], 0x00, sizeof(LIVROS));
                                break;
                                }
                    case 3:
                        for (i=0; i<TAM_LISTA; i++)
                            if (Biblioteca.Exatas[i].Codigo == nCodigo)
                                {
                                memset(&Biblioteca.Exatas[i], 0x00, sizeof(LIVROS));
                                break;
                                }
                    break;
                    }
                }
            case 4:
                {
                printf ("encerrando sistema");
                exit (0);
                break;
                }
    
            default:
                {
                printf ("Opcao invalida"); 
                break;
                }
            }
        }
    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

olá pessoal...estou com problemas com ponteiros...

preciso compilar um programa que receba 10 posições e mostre o valor deles de na ordem inversa que foram informados na tela. mas tudo usando ponteiros. fiz mas não compila.

mostrar o vetor na ordem inversa, ou

seja, do elemento 9 ao 0.*/

#include <stdio.h>
#include <stdlib.h>
#define TAM 10

int main()
{

  int vetor[TAM], i;
  int *p = &vetor[0];
  
  
  printf("Preencha o Vetor\n");
  for(i=0;i<TAM;i++){
  printf("Informe Valor: ");
  scanf("%d",p++);
  }
  
  printf("\n");
  
  p = &vetor[10];
  printf("Valores Informados:\n");
  for(i=10;i<=10;i){
  printf("%d,", *p);
  p--;
  
  }
  
  fflush(stdin);
  getchar();
  return 0; 
}

Link para o comentário
Compartilhar em outros sites

  • 0

olá pessoal....consegui compilar corretamente conforme o exercício, vou disponibilizar o codigo que eu mesmo fiz corrigido...tentando...tentando..tentando...rsrsrs

[codigo]

#include <stdio.h>

#include <stdlib.h>

#define TAM 10

int main()

{

int vetor[TAM], i;

int *p = &vetor[0];

printf("Preencha o Vetor\n");

for(i=0;i<TAM;i++){

printf("Informe Valor: ");

scanf("%d",p++);

}

printf("\n");

p = &vetor[i-1];

printf("Odem inversa\n");

for(i=TAM;i>0;i--)

printf("%d\n ", *p--);

fflush(stdin);

getchar();

return 0;

}[/codigo]

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,4k
×
×
  • Criar Novo...