Algoritmo para prova

eu preciso fazer um algoritmo em java q receba nome,sexo e altura de 10 alunos
utilizando vetor e for, e mostre qual aluno maior e menor e qual aluna maior e menor e o maior e menor entre os dois sexos.
criei um algorítimo mas não é exatamente oque o professor pede porque não estou conseguindo dividir por sexo os alunos

public static void main(String[] args) {
String alunas[] = new String[2];
int alturaF[] = new int[2];
String alunos[] = new String[2];
int alturaM[] = new int[2];
String aux;
int maiorM =0, maiorF =0, maiorT =0;
int menorM =999, menorF =999, menorT=999;

for (int i = 0; i < 2; i++) {
	aux = JOptionPane.showInputDialog("Digite o nome da "+(i+1)+"ª Aluna !!!MENINAS!!!: ");
	 alunas[i] = aux;
	 
	 aux = JOptionPane.showInputDialog("Digite a Altura da "+(i+1)+"ª Aluna: ");
	 alturaF[i] = Integer.parseInt(aux);
	 
	
	aux = JOptionPane.showInputDialog("Digite o nome do "+(i+1)+"º Aluno !!!MENINOS!!!: ");
	alunos[i] = aux;
	
	 aux = JOptionPane.showInputDialog("Digite a Altura do "+(i+1)+"º Aluno: ");
	 alturaM[i] = Integer.parseInt(aux);
}
for(int i = 0; i < 2; i++) {
System.out.println("Nome: "+alunas[i]+" altura: "+alturaF[i]);
System.out.println("Nome: "+alunos[i]+" altura: "+alturaM[i]);

}	
	


for (int i = 0; i < 2; i++) {
if (alturaF[i] > maiorF) {
	maiorF = alturaF[i];
}if (alturaM[i] > maiorM) {
	maiorM = alturaM[i];
}if (maiorM > maiorF) {
	maiorT = maiorM;

}

}

for (int i = 0; i < 2; i++) {
	if (alturaF[i] < menorF) {
		menorF = alturaF[i];
	}if (alturaM[i] < menorM) {
		menorM = alturaM[i];
	}if (menorF < menorT) {
		menorT = menorF;

		
	}
}
	System.out.println("maior entre todos: \naltura: "+maiorT);
	System.out.println("menor entre todos:\naltura: "+menorT);
	System.out.println("maior aluna: \naltura: "+maiorF);
	System.out.println("menor aluna: \naltura: "+menorF);
	System.out.println("maior aluno: \naltura: "+maiorM);
	System.out.println("menor aluno: \naltura: "+menorM);

}
}

eu estava tentando assim mais tava bugando como sou iniciante em programação estou me batendo para resolver isso

public static void main(String[] args) {
int altura[] = new int [2];
String nome[] = new String [2];
String sexo[] = new String[2];
int maior = 0, menor = 299, maiorM = 0;
int menorM = 299, maiorF = 0, menorF = 299;
String aux, aluno="";

for (int i = 0; i < 2; i++) {
aux = JOptionPane.showInputDialog("Nome do "+(i+1)+"º Aluno: ");
nome[i] = aux;

aux = JOptionPane.showInputDialog("Altura do "+(i+1)+"º Aluno: ");
altura[i] = Integer.parseInt(aux);

aux = JOptionPane.showInputDialog("Sexo do "+(i+1)+"º Aluno (M/F): ");
sexo[i] = aux;
}
for (int i = 0; i < 2; i++) {
	if (sexo[i]=="f") {
		sexo[i] = "Feminino";
	}else 
	if (sexo[i]=="m") {
		sexo[i] = "Masculino";
	}
}

Tu não precisa das variaveis com maior e menor, tu pode fazer isso usando o próprio vetor. Por exemplo, a primeira entrada do usuário será obrigatóriamente o valor máximo e minimo, depois disso é só fazer as comparações com os próximos valores (entradas do usuário).

Para dividir os sexos eu usaria as variaveis que tu criou auxiliares “maiorF/menorF”, basta que tu faça o que recomendei acima.

Digamos que o usuário enrte com o valor 20. Como é tua primeira entrada no vetor, esse valor vai ser teu máximo e minimo.

maiorM = 20
menorF= 20

Quando usuário entrar com outra nota, tu vai comparar essa nota com a anterior (sempre)

maiorM <= novaEntrada ? (Sim : maiorM = novaEntrada) : (Não: maiorM continua igual)

Para comparar os dois vetores é só percorres ambos, pegar o maior de cada um usando a mesma lógica

Evite duplicar tópicos. :wink:

1 curtida