Preciso imprimir o nome do aluno mais velho e do mais novo mas estou tendo problemas no meu código

1 resposta
java
J
package roteirovetor;

import java.util.Scanner;

public class Jose01 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

String []aluno = new String[3];

int []idade = new int [3];

int maior16 = 0, menor16 = 0, mediama=0;

int velho = 0, novo = 0,menor=0, maior=0;

String nomem=null , nomev=null;

float soma = 0, media = 0;

for (int i=0; i<aluno.length; i++){

System.out.println("Digite o nome do " +(i+1)+ "° aluno: ");

aluno [i] = scan.next();

System.out.println("Digite a idade do " +(i+1)+ "° aluno: ");

idade [i] = scan.nextInt();
if (idade[i]<=16){
            menor16++;
        }
    
    else{
          maior16++;
      }
   
    soma += idade[i];
    media = soma/(i+1);
    
    if (idade[i]<media){
            mediama++;
    }
    
    if (idade[i]<menor){
        menor=idade[i];
        nomem = aluno[i];
    }
    else if (idade[i]>maior)
        maior = idade[i];
        nomev = aluno[i];        
    }
    
    
    
    System.out.println("A quantidade de aluno(s) com idade inferior ou igual a 16 é(são): " +menor16);
    System.out.println("A quantidade de aluno(s) com idade superior a 16 é(são): " +maior16);
    System.out.println("A média da iadades é: " +media);
    System.out.println("A quantidade de aluno(s) com idade acima da media é(são) :" +mediama);
    System.out.println("O aluno " +nomev+ " que é o mais velho tem " +maior+ " anos.");
    System.out.println("O aluno " +nomem+ " que é o mais novo tem " +menor+ " anos.");
}

}

1 Resposta

P

A não ser que introduzas idades negativas, nunca vais ter uma idade menor que o 0 inicial. O valor inicial de menor não de ser zero, tem de ser um número muito grande, como por exemplo menor = Integer.MAX_VALUE

Criado 5 de dezembro de 2020
Ultima resposta 6 de dez. de 2020
Respostas 1
Participantes 2