Problemas com média

Olá gente!!

Sou novo aqui no forum mas venho acompanhado vcs a um tempo. Sempre que tenho dúvidas procura aqui e na maioria das vezes eu acho.
Mas dessa vez é uma questão de lógica mesmo.

Então lá vai…

O programa que estou tentando fazer é um trabalho da facul. Ele está quase todo feito, mas duas saídas não estão com o resultado correto.
Eu sei que o programa tem variaveis demais,mas isso vou resolver depois.
O que acontece é que ele deveria calcular a média de idade de pessoas fora do peso ideal e pessoas no peso ideal.
Ex. uma pessoa de 25 anos com 180cm de altura com 130 está fora do peso(claro que está)
uma segunda pessoa de 35 anos com 150cm de altura com 80 também está fora do peso.
Logo a média de idade de pessoas fora do peso deveria dar 30. Mas esse resultado não ta dando certo de jeito nenhum. ESSE É O PROBLEMA.

Espero que tenham entendido.

Desde já agradeço.

Abraço a todos.

O programa é esse ai:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package peso;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

try {

  BufferedReader entrada;

entrada = new BufferedReader( new InputStreamReader (System.in));

String sexo;
int idade_homem = 0;
int idade_mulher = 0;
float altura_homem = 0f;
float altura_mulher = 0f;
float peso_homem = 0f;
float peso_mulher = 0;
float media_idade_fora_peso = 0f;
float media_idade_dentro_peso = 0f;

String opcao;
int quant_pessoas = 0;
int quant_homens_abaixo_peso = 0;
int quant_homens_acima_peso = 0;
int quant_homens_peso_ideal = 0;
int quant_mulher_abaixo_peso = 0;
int quant_mulher_acima_peso = 0;
int quant_mulher_peso_ideal = 0;
int quant_pessoas_peso_ideal = 0;
int quant_homens = 0;
int quant_mulher = 0;
int quant_pessoas_acima_peso = 0;
int quant_pessoas_abaixo_peso = 0;
float imc = 0;
float perc_homens_acima_peso = 0f;
float perc_homens_abaixo_peso = 0f;
float perc_homens_peso_ideal = 0f;
float perc_mulher_acima_peso = 0f;
float perc_mulher_abaixo_peso = 0f;
float perc_mulher_peso_ideal = 0f;
float perc_pessoas_acima_peso = 0f;
float perc_pessoas_abaixo_peso = 0f;
float perc_pessoas_peso_ideal = 0f;
float media_peso_todos_homens = 0f;
float media_peso_todas_mulher = 0f;
float soma_pesos_homens = 0f;
float soma_pesos_mulher = 0f;
int idade_peso_menos_h = 0;
int idade_peso_mais_h = 0;
int idade_peso_menos_m = 0;
int idade_peso_mais_m = 0;
int idade_dentro_peso_m = 0;
int idade_dentro_peso_h = 0;
int soma_idade_homem = 0;
int soma_idade_mulher = 0;
int idade_fora_peso = 0;
int idade_dentro_peso = 0;

do{
System.out.println("Por favor, informe seu sexo: masc ou fem ? ");
sexo = entrada.readLine();

if (sexo.equals(“masc”)){

System.out.println("Por favor, informe sua idade: ");
idade_homem = Integer.parseInt(entrada.readLine());
soma_idade_homem = soma_idade_homem + idade_homem;

System.out.println("Por favor, informe sua altura em centimetros: ");
altura_homem = Float.parseFloat(entrada.readLine());

System.out.println("Por favor, informe o seu peso: ");
peso_homem = Float.parseFloat(entrada.readLine());
altura_homem = altura_homem/100;
soma_pesos_homens = (float)soma_pesos_homens + peso_homem;
//peso_ideal_homem = (float)(72.7 * altura_homem) - 58;
imc = peso_homem/(altura_homem * altura_homem);
if(imc < 18.5){
quant_homens_abaixo_peso++;
quant_pessoas_abaixo_peso++;
idade_peso_menos_h = idade_peso_menos_h + idade_homem;
}
else if(imc > 30){
quant_homens_acima_peso++;
quant_pessoas_acima_peso++;
idade_peso_mais_m = idade_peso_mais_m + idade_homem;
}
else{
quant_homens_peso_ideal++;
quant_pessoas_peso_ideal++;
idade_dentro_peso_h = idade_dentro_peso + idade_homem;
}

quant_homens++;

}

else if(sexo.equals(“fem”)){

System.out.println("Por favor, informe sua idade: ");
idade_mulher = Integer.parseInt(entrada.readLine());
soma_idade_mulher = soma_idade_mulher + idade_mulher;

System.out.println("Por favor, informe sua altura em centimetros: ");
altura_mulher = Float.parseFloat(entrada.readLine());

System.out.println("Por favor, informe o seu peso: ");
peso_mulher = Float.parseFloat(entrada.readLine());
altura_mulher = altura_mulher/100;
soma_pesos_mulher = (float)soma_pesos_mulher + peso_mulher;
//peso_ideal_homem = (float)(72.7 * altura_homem) - 58;
imc = peso_mulher/(altura_mulher * altura_mulher);
if(imc < 18.5){
quant_mulher_abaixo_peso++;
quant_pessoas_abaixo_peso++;
idade_peso_menos_m = idade_peso_menos_m + idade_mulher;
}
else if(imc > 30){
quant_mulher_acima_peso++;
quant_pessoas_acima_peso++;
idade_peso_mais_m = idade_peso_mais_m + idade_mulher;
}
else{
quant_mulher_peso_ideal++;
quant_pessoas_peso_ideal++;
idade_dentro_peso = idade_dentro_peso + idade_mulher;
}

 quant_mulher++;

}

System.out.println(“Gostaria de continuar o programa? sim ou nao” );
opcao = entrada.readLine();

quant_pessoas++;
}

while(opcao.equals(“sim”));

perc_homens_acima_peso = (float)quant_homens_acima_peso / quant_homens * 100;
perc_homens_abaixo_peso = (float)quant_homens_abaixo_peso / quant_homens * 100;
perc_homens_peso_ideal = (float)quant_homens_peso_ideal / quant_homens * 100;

perc_mulher_acima_peso = (float)quant_mulher_acima_peso / quant_mulher * 100;
perc_mulher_abaixo_peso = (float)quant_mulher_abaixo_peso / quant_mulher * 100;
perc_mulher_peso_ideal = (float)quant_mulher_peso_ideal / quant_mulher * 100;

perc_pessoas_acima_peso = (float)quant_pessoas_acima_peso / quant_pessoas * 100;
perc_pessoas_abaixo_peso = (float)quant_pessoas_abaixo_peso / quant_pessoas * 100;
perc_pessoas_peso_ideal = (float)quant_pessoas_peso_ideal / quant_pessoas * 100;

media_peso_todos_homens = (float)soma_pesos_homens / quant_homens;
media_peso_todas_mulher = (float)soma_pesos_mulher / quant_mulher;

quant_pessoas_acima_peso = quant_homens_acima_peso + quant_mulher_acima_peso;
quant_pessoas_abaixo_peso = quant_homens_abaixo_peso + quant_mulher_abaixo_peso;

media_idade_fora_peso = (float)idade_peso_mais_h + idade_peso_menos_h + idade_peso_mais_m + idade_peso_menos_m / quant_pessoas;
media_idade_dentro_peso = (float)idade_dentro_peso_h + idade_dentro_peso_m / quant_pessoas;

System.out.println("A média de idade de pessoas fora do peso é de " + media_idade_fora_peso);
System.out.println("A média de idade de pessoas no peso ideal é de " + media_idade_dentro_peso);

System.out.println("O percentual de homens com peso ideal é " + perc_homens_peso_ideal + “%”);
System.out.println("O percentual de homens acima do peso é " + perc_homens_acima_peso + “%”);
System.out.println("O percentual de homens abaixo peso é " + perc_homens_abaixo_peso + “%”);
System.out.println("A média do peso de todos os homens é " + media_peso_todos_homens + “Kg”);

System.out.println("O percentual de mulheres com peso ideal é: " + perc_mulher_peso_ideal + “%”);
System.out.println("O percentual de mulheres acima do peso é: " + perc_mulher_acima_peso + “%”);
System.out.println("O precentual de mulheres abaixo do peso é: " + perc_mulher_abaixo_peso + “%”);
System.out.println("A média do peso de todas as mulheres é de " + media_peso_todas_mulher + “Kg”);

System.out.println("A quantidade de pessoas com peso ideal é: " + quant_pessoas_peso_ideal);

System.out.println(“A quantidade de participantes da pesquisa foi de " + quant_pessoas + " pessoas”);

}

catch(Exception e){
System.out.println(“Ocorreu um erro durante a leitura!”);
}
}

}

[/code]

Oi girrezeh,

Por favor,coloque seu codigo entre as tags Code…

Peço desculpas Anime. Agora foi.

Normal,tb fiz isso no começo rsrs…

Realmente tem muitas variaveis…Vou deixar um prog. parecido como exemplo,ai vc estuda heim…
Depois vai postando suas duvidas ok…


/*faça um programa que solicite o nome, o peso, o sexo e a altura de uma pessoa e
 *em seguida calcule o peso ideal e mostre a mensagem conforme o resultado;
 *
 *"nome_da_pessoa seu peso ideal é ......."
 *"portanto vc precisa ganhar/perder......kilos" 
 *caso o usuario esteja no peso ideal parabeniza-lo atraves de uma mensagem
 *
 *homens-(72.7*h)-58 mulher-(62.1*h)-44.7    onde h é a altura */
 
 import java.io.*;
class P32
{
	public static void main(String args[])
	{
		int tam;
		String s,nome;
		DataInputStream d;
		char sexo;
		double peso,altura,peso_ideal,dif;
		try
		{
			System.out.println("Digite seu nome: ");
			d=new DataInputStream(System.in);
			nome=d.readLine();
			System.out.println("Digite o sexo: ");
			d=new DataInputStream(System.in);
			s=d.readLine();
			s=s.toLowerCase();
			sexo=s.charAt(0);
			System.out.println("Digite o seu peso: ");
			d=new DataInputStream(System.in);
			s=d.readLine();
			peso=Double.parseDouble(s);
			System.out.println("Digite a sua altura: ");
			d=new DataInputStream(System.in);
			s=d.readLine();
			altura=Double.parseDouble(s);
			if ((sexo=='m')||(sexo=='f'))
			{
				System.out.println("Nome: "+nome);
				System.out.println("Sexo: "+sexo);
				System.out.println("Altura: "+altura);
				System.out.println("Peso atual: "+peso);
				System.out.print("Peso ideal ");
				if (sexo=='m')
				{
					peso_ideal=(72.7*altura)-58;
			    }
			    else
			    {
			    	peso_ideal=(62.1*altura)-44.7;
			    }
		        peso_ideal=Math.ceil(peso_ideal*100+0.5)/100;
		        System.out.print(peso_ideal+" e voce precisa ");
		        if(peso_ideal>peso)
		        {
		        	dif=peso_ideal-peso;
		        	System.out.print(" engordar "+dif+" Kg ");
		        }
		        else
		        {
		        	dif=peso-peso_ideal;
		        	System.out.print(" emagrecer "+dif+" Kg ");
		        }
		      }  
		      else
		         {
		         	System.out.println("Sexo inválido");
		         }
		  }       
		      catch(IOException e)
     	      { 
     	          System.out.println("erro na entrada de dados ");
     	      }
     	      catch(NumberFormatException e)
     	      {
     		      System.out.println("numero invalido");
              } 
      
   } 
} 

GOSTARIA DE VER O ENUNCIADO DO EXERCICIO…

O enunciado é o seguinte…

A população de uma cidade está fora do peso considerado ideal, por isso o prefeito, muito preocupado encomendou uma pesquisa para verificar:

a) a media de idade das pessoas que estão fora do peso;
b) a média de idade das pessoas que estão dentro do peso;
c) a porcentagem de homens com peso ideal;
d) a porcentagem de homens com peso maior que o ideal;
e) a porcentagem de homens com peso menor que o ideal;
f) a média do peso de todos os homens;
g) a porcentagem de mulheres com peso ideal;
h) a porcentagem de mulheres com peso maior que o ideal;
i) a porcentagem de mulheres com peso menor que o ideal;
j) a media do peso de todas as mulheres;

O programa deve ler a idade, sexo, peso, altura
Deverão ser consideradas quantas pessoas o usuário desejar, para isso dverá ser lida uma resposata ao final de cada volta.

Bom ,essa ai é a qustão.
Para o peso ideal, eu levei em considerção o IMC. Peço para o usuário informar a altura em centimetros e depois converto para metros pra calcular o IMC.
Desconsidere as linhas que estão como comentários.

Ok…mas tenta fazer e depois post as duvidas e tenta tb diminuir o codigo…

abs…

Assim, você pode usar arrays e objetos para esse exercício ? Pode usar métodos ? De qualquer maneira, pra você fazer esse tipo de cálculo o ideal é ler todas as entradas primeiro porque senão não dá certo; Outra coisa, tem muito código repetido, isso deixa a leitura difícil demais da conta, por exemplo, a leitura da idade é incondicional para qualquer pessoa, não precisa ser repetido, o que você deve testar apenas é qual variável que deve ser somada, entendeu ?