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.
Mike
Maio 25, 2018, 12:13pm
#5
eduardo13:
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
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.
Mike
Maio 25, 2018, 1:54pm
#7
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!!
Mike
Maio 25, 2018, 2:13pm
#9
Que bom! Você inicializou com 9999999 ou fez do outro jeito?
Considere marcar a minha resposta como solução
Inicializei com o valor 9999999.