Ajuda em java

Escrever um algoritmo que leia um conjunto de 20 informações contendo, cada uma delas, a altura e o sexo de uma pessoa (código=1, masculino código=2, feminino), calcule e mostre o seguinte:

a) a maior e a menor altura da turma

b) a média da altura das mulheres

c) a média da altura dos homens

d) a média da altura da turma.

eu tenho uma dúvida apenas no código, tenho ele feito aqui, não consegui fazer apenas a parte do menor, o resto está feito

Ajudaria mto se o postasse e explicasse onde tá seu problema/dúvida.

Você terá que ter um for e uma variável que armazenará o valor menor, irei chama-la de menor

Se x for menor que menor
menor = x

import java.util.Scanner;

public class Exec13 {

public static void main(String[] args) {
    Scanner t = new Scanner(System.in);
    float altf = 0;
    float a1;
    int contf = 0;

    float maior2 = 0;
    float maior1 = 0;
    float maior = 0;

    float menor1 = 0;
    float menor2 = 0;
    float menor = 0;

    float altm = 0;
    float a2;
    float contm = 0;
    for (int i = 0; i < 5; i++) {
        System.out.print("1. MASCULINO       2.FEMININO\n\n");
        System.out.print("ESCOLHA:");
        int n = t.nextInt();
        switch (n) {
            case 1:
                System.out.println("Qual a sua altura?");
                a1 = t.nextFloat();
                altm += a1;
                contm++;

                if (a1 > maior1) {
                    maior1 = a1;
                }
                if(a1<menor1){
                    menor1 = a1;
                }
                break;
            case 2:
                System.out.println("Qual a sua altura? ");
                a2 = t.nextFloat();
                altf += a2;
                contf++;
                if (a2 > maior2) {
                    maior2 = a2;
                }
                if(a2<menor2){
                    menor2=a2;
                }
                break;
            default:
                System.out.println("Opção inválida.");
        }
    }
    if (maior1 > maior2) {
        maior = maior1;
    } else {
        maior = maior2;
    }
    if(menor1<menor2){
        menor = menor1;
    }else{
        menor = menor2;
    }
    float f = altf / contf;
    float m = altm / contm;
    float mediaT = (altf + altm) / 5;

    System.out.println("Média da altura das mulheres: " + f);
    System.out.println("Média altura dos homens: " + m);
    System.out.println("Média da altura da turma: " + mediaT);
    System.out.println("maior da turma: " + maior);
    System.out.println("Menor da turma: " + menor);
}

}

A única parte que estou com problema é no “menor”, já tentei de várias formas.

O menor fica com o valor 0 né?

Quando você cria uma variável, ela já vem com um valor padrão de inicialização, no caso do float é 0.
Ou seja você esta comparando o valor 0 da variavel menor.

Se você definir um valor negativo na altura, você verá que vai funcionar

Você pode declarar a variável menor com o valor 9999999 ou então, na primeira inserção de valores, você já atribuir um valor a ela, ai a comparação funcionará

Funcionou , muito obrigado!!

Que bom! Você inicializou com 9999999 ou fez do outro jeito?
Considere marcar a minha resposta como solução :+1:

Inicializei com o valor 9999999.