Ir para conteúdo
Fórum Script Brasil

Priest

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Posts postados por Priest

  1. Meu primeiro post! :]

    Bom, fiz um codigo que registra livros, editora, numero de paginas e outros dados. O objetivo do exercicio é montar uma estrutura para inserir os dados e depois ver o total do número de páginas e fazer a média destas. Isso eu já fiz, foi fácil, o problema ocorreu quando fui tentar exibir o resultado da seguinte maneira:

    printf("O livro \"%s\" possui %d paginas.\n", proc.nome, proc.paginas);

    *postarei o código mais abaixo*

    O meu problema ocorre no momento de pedir para o usuário inserir o nome do livro.

    Primeiro eu tentei fazer com scanf("%s", &proc.nome), e dessa maneira ele funciona numa boa quando escrevo uma única palavra. Entretanto, quando uso espaços ele buga.

    Então tentei usar gets usando uma variavel char e copiando para a estrutura, porém após a primeira passagem do laço ela também buga pulando a primeira rotina.

    Segue o código levemente alterado para entenderem melhor.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct livro{
           char nome[100];
           char editora[100];
           int paginas;
    };
    
    int main(){
        
        struct livro proc[5];
        int i, ct = 0, soma = 0;
        float media;
        char str1[100], str2[100];
        
        for (i = 0; i < 5; i++){
            
            printf("\nDigite o nome do livro: ");
            gets(str1);
            strcpy (proc[i].nome, str1);
            printf("Digite o nome da editora: ");
            gets(str2);
            strcpy (proc[i].editora, str2);
            printf("Digite o numero de paginas: ");
            scanf("%d", &proc[i].paginas);
            ct++;
            soma += proc[i].paginas;
            }
        
        media = soma / ct;
                
        printf("\n");
        for (i = 0; i < 5; i++){
            printf("O livro \"%s\" possui %d paginas.\n", proc[i].nome, proc[i].paginas);
        }
    
        printf("\n\nO total de paginas dos %d livros é: %d", ct, soma);
        
        printf("\nPortanto a media de paginas dos livros é:%.2f", media);
        printf("\n\n*Fim*\n\n");
        
        system ("Pause");
        return 0;
    }
    

    Alguém poderia me dar uma luz com essa dúvida?

    Agradeço desde já, abraços.

×
×
  • Criar Novo...