Priest
-
Total de itens
2 -
Registro em
-
Última visita
Posts postados por Priest
-
-
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.
Ajuda Com Problema De Iniciante.
em C, C++
Postado
Opa, esqueci de logar.
Valeu de novo.