Olá boa noite, o professor do meu curso, passou um exercício.
1-Receba a altura e peso de um determinado grupo de pessoas(feito)
2-Diga a média de ambos(feito)
3-Diga a maior e menor altura (dúvida está aqui)
segue o código abaixo q estou usando : }
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Quantos usuários irão participar ?");
int user = input.nextInt();
double alt;
double ps;
double totalAT = 0;
double totalPS = 0;
int i = 0;
while (i < user) {
System.out.println(+(i + 1) + "º Usuário, digite sua altura e consecutivamente seu peso:");
System.out.print("Altura: ");
alt = input.nextDouble();
System.out.print("Peso: ");
ps = input.nextDouble();
totalAT += alt;
totalPS += ps;
i++;
if (user == i)
break;
}
double mediaAT = totalAT / user;
double mediaPS = totalPS / user;
System.out.println("A média de altura é: " + mediaAT + " Metros.");
System.out.println("A média de peso é: " + mediaPS + " Kg.");
Fico travado, quando tenho que comparar as alturas, e dizer qual é a menor e maior dentre elas, pelo simples fato de que, a cada loop do laço while, a váriavel citada em (alt = input.nextdouble() ), simplesmente deixa de existir, e é assumida pela ultima váriavel digitada pelo usuário.
STNeto
Setembro 16, 2018, 3:32am
#3
Tem alguns jeitos de fazer isso. O mais simples seria rodar toda a lista vendo se a pessoa da vez é maior que a atual maior, ou menor que a atual. Um mais complicado creio que seria usando map, mas como não estudei eles, não posso afirmar nada.
como assim, querido, n compreendi… da um exemplo em codigos, se possivel
vamos la
como vc acha a maior altura?
vc pega a primeira altura e guarda numa variável (digamos maiorAltura
) declarada fora do while.
na segunda altura em diante vc checa que altura digitada é maior que a maiorAltura
. se for, vc substitui o valor dessa variável com o valor atual.
serve pra qualquer quantidade, desde que vc faça as comparações corretas
mas a maior altura , vai ser sempre a declarada pelo usuário, dentro do while…é apartir daí q n consigo proceder.
Como vc sabe que vc esta na primeira iteração? Pelo valor da sua variavel indexada, certo?
int maior;
int i = 0;
while(i < max){
int altura = ...
If (i==0) { maior = altura; } else if ...
i++;
}
Por ser novo, continuo com mtas dificuldades, mas vou qbrar a cabeça aqui. obg.