Ir ao conteúdo

Megalodon_P

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

1
  1. @devair1010 Consegui a média certinho, mas sobre o restante da questão, como saber o maior consumo semestral do cliente e a quantidade de meses em que o consumo foi superior à média? Fiz da seguinte maneira o código para saber o maior consumo semestral, contudo, não deu certo: #include <stdio.h> #include <stdlib.h> // Declarando o registro. struct TConta { int Codigo; char Nome[51]; char Telefone[12]; char Operadora[51]; float Consumo[30]; float Media; float MaiorConsumo6; int QtdMesesConsumoInferiorMedia; }; // Segundo laço de repetição para informar o consumo de 6 meses consecutivos de cada cliente. for (j=0; j < 6; j ++) { printf("\n\nConsumo (em reais) do %do mes: ", j + 1); scanf("%f", &Conta[i].Consumo[j]); system("cls"); // Verificando o maior consumo semestral. if (Conta[i].Consumo[j] > Maior) { PosMaiorConsumo6 = j; // Posição do maior consumo semestral Maior = Conta[i].Consumo[j]; // Mair passa a ser Conta[i].Consumo[j]. Conta[i].MaiorConsumo6 = Conta[i].Consumo[j]; } } // Imprimindo os dados das contas. for (int i=0; i < 5; i ++) { printf("\nA media de consumo do %d.o cliente e: %.2f", i + 1, Conta[i].Media); printf("\nO maior consumo semestral do %d.o cliente e: %.2f", i + 1, Conta[i].MaiorConsumo6); } @devair1010 Obrigado, consegui aqui. Vou agora tentar o restante da questão.
  2. @devair1010 Obrigado, consegui aqui. Vou agora tentar o restante da questão.
  3. Utilizando registro, elabore um programa que preencha uma estrutura de dados conforme exemplo abaixo. Essa estrutura contém os dados de 5 clientes de empresas de telefonia celular e também o valor da conta dos últimos 6 meses. Após preenchimento, exiba para cada cliente, a média e o maior consumo semestral, e também a quantidade de meses em que o consumo foi inferior à média. Comecei fazer pelo menos as médias para ver se estava fazendo certo, contudo, na saída do meu programa não aparece nada. O que estou fazendo de errado? #include <stdio.h> #include <stdlib.h> // Declarando o registro. struct TConta { int Codigo; char Nome[51]; char Telefone[12]; char Operadora[51]; float Consumo[6]; float Media; float MaiorConsumo6; int QtdMesesConsumoInferiorMedia; }; // Função para descobrir o maior consumo. float Maior_Consumo_Semestral(float Maior) { float Num=0; float ResultMaiorNumero; for (int i=0; i < 6; i ++) { float Num=0; if (Num < Maior) { Num = Maior; ResultMaiorNumero = Num; } } return ResultMaiorNumero; } // Programa principal. int main() { // Declarando as variaveis. int i, j; struct TConta Conta[5]; // Primeiro laço de repetição informando os 5 clientes. for (int i=0; i < 5; i ++) { printf("Informe os dados da %da. Conta: ", i + 1); printf("\nCodigo da conta: "); scanf("%d", &Conta[i].Codigo); setbuf(stdin, NULL); printf("\nNome do cliente: "); fgets(Conta[i].Nome, 51, stdin); setbuf(stdin, NULL); printf("\nTelefone: "); fgets(Conta[i].Telefone, 12, stdin); setbuf(stdin, NULL); printf("\nOperadora: "); fgets(Conta[i].Operadora, 51, stdin); setbuf(stdin, NULL); system("cls"); // Segundo laço de repetição para informar o consumo de 6 meses consecutivos de cada cliente. for (j=0; j < 6; j ++) { printf("\n\nConsumo (em reais) do %do mes: ", j + 1); scanf("%f", &Conta[i].Consumo[j]); system("cls"); } // Calculando a media de consumo dos últimos 6 meses da Conta[i]. Conta[i].Media = (Conta[i].Consumo[0] + Conta[i].Consumo[1] + Conta[i].Consumo[2] + Conta[i].Consumo[3] + Conta[i].Consumo[4] + Conta[i].Consumo[5])/6; } // Imprimindo os dados das contas. for (int i=0; i < 5; i ++) { printf("\nA media de consumo do %d.o cliente e: %.2f", i + 1, Conta[i].Media); } return 0; }
  4. @Midori Você está me ajudando muito. Entendi que minha forma é mais trabalhosa e obsoleta, de fato. Uma pergunta: O que seriam esses * antes das palavras? Gostaria de saber para poder entender ainda mais o seu código.
  5. Veja os campos de alguns registros: Professor(número de registro, nome, número do título, total hora/aula sem.) Titulo(número do título, descrição, valor hora/aula) Elabore um programa que: Cadastre os títulos. Sabe-se que nessa escola existem três títulos; Cadastre os professores. Sabe-se que nessa escola trabalham 6 professores, e cada um deve estar associado a um título previamente cadastrado; Exibir a relação de professores, conforme o layout abaixo: Eu fiz o seguinte pessoal: #include <stdio.h> #include <stdlib.h> // Definindo o registro para os titulos. struct TTitulos { char NomeTitulo[51]; char NumeroTitulo[12]; float ValorHrAula; }; // Definindo o registro para os professores. struct TProfessores { char NumeroRegistro[12]; char Nome[51]; char NumeroTitulo[12]; int TotalHrAulaSem; }; int main() { struct TTitulos Titulos[3]; // Entrada de dados. Cadastrando os titulos para o registro. for (int i=0; i < 3; i++) { printf("Entre com os dados do %d.o titulo:", i + 1); printf("\nNome: "); fgets(Titulos[i].NomeTitulo, 51, stdin); setbuf(stdin, NULL); printf("\nCodigo: "); fgets(Titulos[i].NumeroTitulo, 12, stdin); setbuf(stdin, NULL); printf("\nValor hora/aula: "); scanf("%.2f", Titulos[i].ValorHrAula); setbuf(stdin, NULL); printf("\n"); // Limpa tela. system("cls"); } struct TProfessores Professores[6]; // Entrada de dados. Cadastrando os dados dos professores para o registro. for (int i=0; i < 6; i ++) { printf("Entre com os dados do %d.o professor:", i + 1); printf("\nNome: "); fgets(Professores[i].Nome, 51, stdin); setbuf(stdin, NULL); printf("\nNumero do registro: "); fgets(Professores[i].NumeroRegistro, 12, stdin); setbuf(stdin, NULL); printf("\nNumero do titulo: "); fgets(Professores[i].NumeroTitulo, 12, stdin); setbuf(stdin, NULL); printf("\nTotal de horas de aula por semana: "); scanf("%d", Professores[i].TotalHrAulaSem); setbuf(stdin, NULL); printf("\n"); // Limpa tela. system("cls"); } // Imprimindo os dados na tela. printf("Imprimindo os dados dos professores...\n"); for (int i=0; i < 6; i ++) { printf("\nNome: %s", Professores[i].Nome); printf("\nNumero do registro: %d", Professores[i].NumeroRegistro); printf("\nNome do titulo: %s", Titulos[i].NomeTitulo); printf("\nValor hora/aula: %.2f", Titulos[i].ValorHrAula); printf("\nTotal de horas de aula por semana: %d", Professores[i].TotalHrAulaSem); printf("\nTotal geral: %.2f", Titulos[i].ValorHrAula * Professores[i].TotalHrAulaSem); } return 0; } Duvidas: não entendi porque a entrada de dados de professores (cadastro) só repetiu uma vez... sendo que a ideia é que essa entrada de dados de professores repita 6 vezes, pois são 6 professores a serem cadastrados. A saída de dados também não apareceu no meu programa e, por fim, o "Q" da questão é associar na saída do programa o nome do título do professor ao número do título já registrado anteriormente em struct TTitulo.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!