Ir ao conteúdo
  • Cadastre-se

Exercício de C usando for/while


Posts recomendados

E aí galera, beleza? Meu professor passou esses exercicios pra gente fazer, mas não passou as respostas e estou completamente perdido na matéria. Alguém poderia me dar uma luz nesta questão?  Sabendo a resposta dela eu consigo entender a lógica desse negócio de for/while, porque até agora ele não passou nenhum exemplo q eu pudesse entender. Agradeço desde já, e aqui está o enunciado do exercício:

 

  • Programa que peça para n pessoas a sua idade. Ao final o programa devera verificar se a média de idade da turma varia entre 0 e 25, 26 e 60 e maior que 60. A partir dessas categorias, imprimir na tela se a turma é jovem, adulta ou idosa, conforme a média calculada.

 

Nem precisa explicar, se quiser passar apenas a resposta eu já fico extremamente grato, mas gostaria de saber também o porque cada coisa acontece, mt obrigado.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Luiz Felipe BP     não tem como te dar as respostas por que elas depende dos valores digitados, então vai somando as idades e as pessoas, e no final divide a soma das idades pela quantidade de pessoas, aí verificar qual faixa se encaixa .   um algoritmo seria assim :

um loop repete até o usuário digitar determinado valor
pegar o valor da idade da pessoa 
somar um ao contador de pessoas
somar a idade com o valor da idade digitado pelo usuário
perguntar ao usuário se quer continuar ou não
se digitar s repete o loop se digitar n não repete
dividir a soma das idades pelo contador de pessoas
ver se o resultado da divisão é de 0 até 25 ou de 26 até 60 ou > 60 
escrever o resultado na tela.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Já que você está com dificuldade na estrutura for/while, sugiro que você tente criar algo mais simples para depois resolver o exercício.

 

Por exemplo, tente fazer um loop só para pedir as idades. E depois vá alterando o seu código.

 

Se você não souber fazer isso, procure algum material na web para iniciantes.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

#include <iostream>
using namespace std;

int main(int argc, char** argv) {
	char prosseguir = 's';
	int idade, somaIdades = 0, quantidade = 0;
	float media;
	
	while (prosseguir != 'n') {			
		cout << "Qual a sua idade?" << endl;
		cin >> idade;
		
		quantidade++;				
		somaIdades = somaIdades + idade;	
				
		cout << "prosseguir = " << prosseguir << endl;
		cout << "Deseja prosseguir? <->Se sim digite: s <-> Se nao digite: n \n";				
		cin >> prosseguir;
	}
	
	
	media = somaIdades / quantidade;
	// cout << "Soma das idades = " << somaIdades << endl;
	// cout << "Quantidade de idades digitadas = " << quantidade << endl;
	// cout << media << endl;
	
	if ((media >= 0) and (media <= 25)){
			cout <<" Media entre 0 e 25 \n";
		}
	
	
	return 0;
}

isto pode ser resolvido de diversas maneiras. No código acima eu fiz da maneira mais simples possível. Vou tentar aqui explicar:

- A variável 'prosseguir' é que determina o fim ou não do laço. Neste caso se o usuário digitar qualquer letra ou caractere diferente de 'n' minúsculo o loop continuará. O ideal seria capturar a tecla pressionada(deixo isto pra você), mas a ideia é a mesma.

- A variável 'idade' dispensa comentários. 

- A variável 'quantidade'. vai contar a quantidade de  idades digitadas. O comando quantidade++ incrementa + 1 ao valor da 'quantidade'.

- 'somaIdades' é um acumulador do valores de idades digitadas.

 

As linhas comentadas abaixo do cálculo da média são apenas para "depuração".  :-)

 

Finalmente depois do loop é feita a primeira verificação. As outras eu deixo pra você. ;-)

Obs1.:Caso alguém tenha percebido algum erro no código ou queiram melhorar, fiquem à vontade.

Obs2.: Caso não tenha entendido, diga aí..

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...