Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
Parazeit

Struct: Lê apenas o primeiro título - C/C++

Pergunta

-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;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por admin
      A Remessa Online, plataforma 100% digital de transações internacionais, está oferecendo um gift card de R$ 120 reais para usar no e-commerce de e-books Casa do Código para quem fizer seu primeiro recebimento de pessoa jurídica na plataforma. Esse primeiro uso pode ser feito por quem precisa receber de serviços prestados para empresas estrangeiras ou ganhos com monetização em plataformas internacionais, como a Twitch, o Facebook, Adsense, entre outras.
       
      Para participar é fácil: é só fazer o seu cadastro de pessoa jurídica nesse link, acessar a plataforma da Remessa Online, enviar os dados bancários para quem for realizar o pagamento e é só receber* o seu pagamento do exterior. O seu primeiro recebimento deve ser de no mínimo 10 mil reais para ganhar o gift card de R$120.
       
      A Casa do Código é a editora do grupo Alura e publica e-books  para quem quer aprender sobre Front-end, Back-end, linguagens de programação, frameworks, Banco de Dados, Nuvem, Mobile, Gestão, Design e UX.
       
      A Remessa Online é uma plataforma 100% digital de recebimento e envio de dinheiro para o exterior com rapidez, segurança e economia. A empresa conta com benefícios como recebimento em até 2 dias úteis, taxas até 8 vezes mais baratas do que bancos tradicionais, atendimento humanizado em português e uma equipe pronta para te ajudar com as dúvidas que podem surgir no momento da transação.
       
      Aproveite a oportunidade, faça sua conta PJ gratuitamente no link e seja um profissional sem fronteiras. A promoção é válida apenas para os 100 primeiros usuários PJ que fizerem a operação de recebimento pela Remessa Online.
       
      *Campanha válida para a participação de pessoas jurídicas domiciliadas no Brasil e que preencherem a condição de participação de recebimento no valor de no mínimo R$10.000,00 (dez mil reais) através da plataforma Remessa Online, no período 08/10/2021 a 31/01/2022, ou antes, enquanto durar o estoque dos prêmios prometidos. Após o resgate do valor recebido, será enviado um email com o gift em no máximo 30 dias após a apuração dos resultados. Consulte o regulamento aqui. CERTIFICADO DE AUTORIZAÇÃO SECAP/ME N. ° 02.015528/2021
    • Por admin
      A Remessa Online, plataforma 100% digital de transações internacionais, está oferecendo um gift card de R$ 120 reais para usar no e-commerce de e-books Casa do Código para quem fizer seu primeiro recebimento de pessoa jurídica na plataforma. Esse primeiro uso pode ser feito por quem precisa receber de serviços prestados para empresas estrangeiras ou ganhos com monetização em plataformas internacionais, como a Twitch, o Facebook, Adsense, entre outras.
       
      Para participar é fácil: é só fazer o seu cadastro de pessoa jurídica nesse link, acessar a plataforma da Remessa Online, enviar os dados bancários para quem for realizar o pagamento e é só receber* o seu pagamento do exterior. O seu primeiro recebimento deve ser de no mínimo 10 mil reais para ganhar o gift card de R$120.
       
      A Casa do Código é a editora do grupo Alura e publica e-books  para quem quer aprender sobre Front-end, Back-end, linguagens de programação, frameworks, Banco de Dados, Nuvem, Mobile, Gestão, Design e UX.
       
      A Remessa Online é uma plataforma 100% digital de recebimento e envio de dinheiro para o exterior com rapidez, segurança e economia. A empresa conta com benefícios como recebimento em até 2 dias úteis, taxas até 8 vezes mais baratas do que bancos tradicionais, atendimento humanizado em português e uma equipe pronta para te ajudar com as dúvidas que podem surgir no momento da transação.
       
      Aproveite a oportunidade, faça sua conta PJ gratuitamente no link e seja um profissional sem fronteiras. A promoção é válida apenas para os 100 primeiros usuários PJ que fizerem a operação de recebimento pela Remessa Online.
       
      *Campanha válida para a participação de pessoas jurídicas domiciliadas no Brasil e que preencherem a condição de participação de recebimento no valor de no mínimo R$10.000,00 (dez mil reais) através da plataforma Remessa Online, no período 08/10/2021 a 31/01/2022, ou antes, enquanto durar o estoque dos prêmios prometidos. Após o resgate do valor recebido, será enviado um email com o gift em no máximo 30 dias após a apuração dos resultados. Consulte o regulamento aqui. CERTIFICADO DE AUTORIZAÇÃO SECAP/ME N. ° 02.015528/2021
    • Por Marcosvn
      Estou vendendo todos os meus livros da área de programação. Estão todos inteiros e em bom estado. O total dos 11 livros no valor atual e novo seria:  R$ 709,00 . Pra quem tiver interesse eu vendo todos eles por R$ 350,00. Moro em mogi das cruzes, quem morar por perto posso entregar em mãos. Qual dúvida podem me chamar no whatsapp: 11- 98557-9543
       
      Segue a relação dos livros com o preço atual e o link da loja:
       

      1 - Use a cabeça - Programação JavaScript - Valor atual: R$ 86,00
      https://www.amazon.com.br/cabeça-Programação-JavaScript-Eric-Freeman/dp/8576089904
       
      2 - Aprendendo Padrões de Projeto em PHP - Valor atual: R$ 59,00
      https://www.amazon.com.br/Aprendendo-Padrões-Projeto-em-PHP/dp/8575223437/ref=asc_df_8575223437/?tag=googleshopp00-20&linkCode=df0&hvadid=379748659420&hvpos=1o1&hvnetw=g&hvrand=2539993308221038591&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9074295&hvtargid=pla-809253259147&psc=1
       
      3 - PHP Moderno - Valor atual: R$ 55,00
      https://www.amazon.com.br/PHP-Moderno-Novos-Recursos-Práticas/dp/857522428X
       
      4 - Princípios do Web Design Maravilhoso - Valor atual: R$ 37,16
      https://www.amazon.com.br/Principios-Do-Web-Design-Maravilhoso/dp/8576082322
       
      5 - Use A cabeça - Web Design - Valor atual: R$ 102,00
      https://www.amazon.com.br/cabeça-Programação-JavaScript-Eric-Freeman/dp/8576089904
       
      6 - PHP - Programando com orientação a objetos - Valor atual: R$ 95,00
      https://www.amazon.com.br/PHP-Programando-com-Orientação-Objetos/dp/8575224654
       
      7 - PHP na Prática - Valor atual: R$ 67,00
      https://www.saraiva.com.br/php-na-pratica-200-exercicios-resolvidos-7849066/p
       
      8 - Aprendendo Node - Valor atual: R$ 67,00
      https://www.amazon.com.br/Aprendendo-Node-Usando-JavaScript-Servidor/dp/8575225405/ref=asc_df_8575225405/?tag=googleshopp00-20&linkCode=df0&hvadid=379748659420&hvpos=1o1&hvnetw=g&hvrand=7408189573190181571&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9074295&hvtargid=pla-397827438661&psc=1
       
      9 - CSS 3 - O Manual que Faltava 3º edição - Valor atual: R$ 62,00
      https://www.amazon.com.br/manual-faltava-David-Sawyer-Mcfarland/dp/8576088630
       
      10 - Programando em Wordpress - Valor atual: R$ 29,90 
      https://www.amazon.com.br/Programando-WordPress-Desenvolvimento-Funções-Plugins/dp/8575224581
       
      11 - Node Essencial - Valor atual: R$ 50,00
      https://www.amazon.com.br/Node-Essencial-Ricardo-Rodrigues-Lecheta/dp/8575226770/ref=asc_df_8575226770/?tag=googleshopp00-20&linkCode=df0&hvadid=379715964603&hvpos=1o3&hvnetw=g&hvrand=15894781247101280639&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9074295&hvtargid=pla-809606892653&psc=1
       
    • Por jeredy
      Tenho um trabalho da faculdade e não consigo fazer rodar o programa corretamente.
      Quando eu coloco o cpf, na hora de imprimir sai um número aleatório. Creio que possa ser por falta de memória pois se coloco um número menor ele sai certo, porém não consigo adicionar memória em cpf.
       
      Obs: ainda não fiz a parte dos menores e da medial do grupo e a parte de imprimir em tabela pois não consegui fazer funcionar nem um básico mas se alguém souber essa parte também e puder me ajudar agradeço!!
       
      #include <stdio.h> #include <stdlib.h> main(){ struct funcionarios{ int *cpf; char nome[30]; int nascimento; float salario; }; int aux=0; //para testar se for 0 antes de armazenar o cpf struct funcionarios *func; int qtdLeitura=0, i=0, cont=0; func = ((struct funcionarios *) (malloc(sizeof(struct funcionarios) * 1))); while(1){ printf("Digite o cpf %d: ", i+1); scanf("%d", &aux); if(aux!= 0){ func.cpf = aux; fflush(stdin); } else{ break; } if(func != NULL){ qtdLeitura++; func = ((struct funcionarios *) realloc(func, sizeof(struct funcionarios) *(qtdLeitura+1))); } printf("Digite o nome %d: ", i+1); scanf("%s", func.nome); printf("Digite o nascimento %d: ",i+1); scanf("%d", &func.nascimento); printf("Digite o salario %d: ",i+1); scanf("%f", &func.salario); cont++; i++; } printf("\n\n"); for(i=0;i<cont;i++){ printf("Cpf %d:%d \n",i+1, func.cpf); printf("Nome %d: %s\n",i+1, func.nome); printf("Nascimento %d: %d\n",i+1, func.nascimento); printf("Salario %d: %.2f\n",i+1, func.salario); } }
       

    • Por juliaKrunker
      1- O comando typedef pode ser utilizado para criar novos comandos, ou simplesmente novas formas de escrever
      determinados comandos em linguagem C. Por exemplo, toda vez que você quiser criar uma variável do tipo struct
      declarado acima, terá que escrever o nome completo do tipo, isto é struct lista. Usando o comando typedef, defina um
      tipo alternativo, chamado Lista, que possa ser usado em lugar de struct lista.

      2-  Usando o tipo Lista que você criou na questão 3, declare uma variável chamada myList que possa ser utilizada para
      construir uma lista encadeada.
       
      3- (0,5) Usando o tipo Lista que você criou na questão 3, declare uma variável chamada novo que possa ser utilizada para criar
      um novo elemento para a lista declarada na questão 4.

      4- Escreva uma linha de código que aloque espaço na memória para a variável novo declarada na questão 5, de forma
      que a variável possa ser utilizada para inserir um novo elemento na lista myList declarada na questão 4.

      5 -Considerando a variável myList declarada na questão 4 e a variável novo declarada na questão 5 e alocada na questão
      6, atribua os valores 1 para o atributo id e 9.1 para o atributo valor e insira-a na lista myList.
       
      6- O trecho de código apresentado a seguir, refere-se a uma função que receberá como parâmetro um ponteiro para
      uma lista do tipo Lista e deverá calcular e retornar a média dos valores existentes na lista. Escreva o corpo da função.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.