Quero criar um programa que imprime a maior e menor altura de um grupo de 5 pessoas, a média de altura dos homens e a quantidade mulheres nesse grupo. Estou com problema no bloco que faz o cálculo da menor e maior altura, não está imprimindo a menor altura, antes estava rodando mas já mexi tanto nesses códigos que eu acho que bugou :/ E quero que o programa obrigue o usuario a digitar somente números com casa decimais. E se não digitar número com casas decimais, volte para a iteração.
package br.com.exercicioweb;
import java.text.NumberFormat; import java.util.InputMismatchException; import java.util.Scanner;
public class AlturaHomensEMulheres {
public static void main(String[] args) {
int qntdMulheres = 0;
int qntdHomens = 0;
double altura = 0;
double soma = 0;
double mediaAlturaHomens = 0;
double maior = 0;
double menor = 0;
Scanner leitura = new Scanner(System.in);
try {
for (int i = 0; i < 5; i++) {
System.out.println("Digite seu gênero: M para masculino ou F para feminino");
String genero = leitura.next().toUpperCase();
if (genero.equals("M")) {
qntdHomens++;
soma += altura;
} else if (genero.equals("F")) {
qntdMulheres++;
} else {
System.out.println("Gênero inválido!");
continue;
}
System.out.println("Digite a sua altura: ");
altura = leitura.nextDouble();
if (altura > maior) {
maior = altura;
} else if (altura < menor) {
menor = altura;
}
}
} catch (InputMismatchException e) {
System.out.println(e.getMessage());
System.out.println("Digite um número válido!");
leitura.nextLine();
}
mediaAlturaHomens = soma / qntdHomens;
System.out.println("A maior altura do grupo é: " + maior + " metros, e a menor é de " + menor + " metros");
System.out.println("A média de altura dos homens é: " + mediaAlturaHomens + " metros");
System.out.println("O número de mulheres é: " + qntdMulheres);
leitura.close();
}
}