Ir para conteúdo
Fórum Script Brasil

Priest

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Priest

Priest's Achievements

0

Reputação

  1. Opa, esqueci de logar. Valeu de novo.
  2. 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...