Struct: Lê apenas o primeiro título - C/C++
-Fazer um programa que cria uma estrutura livro, que contém os elementos
título, ano de edição, número de páginas e preço. Criar uma variável desta
estrutura que é um vetor de 5 elementos. Ler os valores para a estrutura e
imprimir a média do número de páginas do livros. Além disso mostrar os dados
do livro com maior preço e menor preço, inclusive se houver mais de um livro
com o mesmo preço.
Tô iniciando agora em struct, e, dada a questão, tentei montar um programa que seguisse operando o que ela pede, mas por algum motivo que n consigo identificar, o programa só lê o título do primeiro livro. Gostaria que alguém me ajudasse a identificar o problema.
Segue o programa que tentei fazer:
#include <stdio.h>
#define T 2
int main () {
struct dados {
char titulo[71];
int ano;
int pag;
float preco;
};
struct dados livro[T];
int i;
float mediap = 0.0;
float maior = 0.0, menor = 9999999999999999.9;
for (i = 0; i < T; i++) {
printf ("\nLivro %d:\n", i + 1);
printf ("\n\tInsira o titulo do livro: ");
fgets (livro[i].titulo, 70, stdin);
printf ("\n\tInsira o ano de edicao: ");
scanf ("%d", &livro[i].ano);
printf ("\n\tInsira o numero de paginas: ");
scanf ("%d", &livro[i].pag);
printf ("\n\tInsira o preco no mercado: ");
scanf ("%f", &livro[i].preco);
if (livro[i].preco < menor)
menor = livro[i].preco;
if (livro[i].preco > maior)
maior = livro[i].preco;
mediap = mediap + livro[i].pag;
}
//system ("cls");
printf ("\n\nA media do numero de paginas dos livros: %.2f\n", (float)mediap/T);
printf ("\nO maior preco dentre os livros: %.2f\n", maior);
printf ("\nO menor preco dentre os livros: %.2f\n", menor);
return 0;
}Discussão (0)
Carregando comentários...