1
Guys, I wonder if you have any function ready in Java or some easy way to make the name of the students with the highest grades appear together, because you’re always getting the last student with the highest grade, even if two students get the same grade.
package application;
import java.util.Locale;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Locale.setDefault(Locale.US);
String[] nomeAlunos = new String[10];
nomeAlunos[0] = "Roberto";
nomeAlunos[1] = "Carlos";
nomeAlunos[2] = "Flavia";
nomeAlunos[3] = "Vitor";
nomeAlunos[4] = "Higor";
nomeAlunos[5] = "Luiza";
nomeAlunos[6] = "Joana";
nomeAlunos[7] = "Isaque";
nomeAlunos[8] = "Gabriela";
nomeAlunos[9] = "Antony";
Double[] notaAlunos = new Double[10];
double mediaNotas = 0, porcentAprovado, porcentReprovado;
int[] freqAlunos = new int[10];
int aprovados = 0, reprovados = 0, notaAprovacao = 70, freqAprovacao = 80;
for(int i = 0; i < nomeAlunos.length; i++) {
System.out.print("Aluno: ");
System.out.println(nomeAlunos[i]);
System.out.print("Entre com a nota (0-100): ");
notaAlunos[i] = sc.nextDouble();
mediaNotas += notaAlunos[i];
while(notaAlunos[i] < 0 || notaAlunos[i] > 100) {
System.out.print("Valor não aceito, digite novamente. ");
notaAlunos[i] = sc.nextDouble();
}
System.out.print("Entre com a frequência (0-100): ");
freqAlunos[i] = sc.nextInt();
System.out.println("");
while(freqAlunos[i] < 0 || freqAlunos[i] > 100) {
System.out.print("Valor não aceito, digite novamente. ");
freqAlunos[i] = sc.nextInt();
}
}
System.out.println("Aprovados: ");
for(int i = 0; i < nomeAlunos.length; i++) {
if(notaAlunos[i] >= notaAprovacao && freqAlunos[i] >= freqAprovacao) {
aprovados += 1;
System.out.print("Nome: " + nomeAlunos[i] + ", Nota: " + notaAlunos[i] + ", Frequência: " + freqAlunos[i] + "%");
System.out.println();
System.out.println();
}
}
System.out.println("Reprovados: ");
for(int i = 0; i < nomeAlunos.length; i++) {
if(notaAlunos[i] < notaAprovacao || freqAlunos[i] < freqAprovacao) {
reprovados += 1;
System.out.print("Nome: " + nomeAlunos[i] + ", Nota: " + notaAlunos[i] + ", Frequência: " + freqAlunos[i] + "%");
System.out.println();
System.out.println();
}
}
Double maiorNota = notaAlunos[0], menorNota = notaAlunos[0];
String nomeMaiorNota = "", nomeMenorNota = "";
for(int i = 0; i < notaAlunos.length; i++) {
if (notaAlunos[i] >= maiorNota) {
maiorNota = notaAlunos[i];
nomeMaiorNota = nomeAlunos[i];
}
if(notaAlunos[i] <= menorNota) {
menorNota = notaAlunos[i];
nomeMenorNota = nomeAlunos[i];
}
}
System.out.println("Aluno com a maior nota: ");
System.out.println("Nome: " + nomeMaiorNota);
System.out.println("Nota: " + maiorNota);
System.out.println();
System.out.println("Aluno com a menor nota: ");
System.out.println("Nome: " + nomeMenorNota);
System.out.println("Nota: " + menorNota);
System.out.println();
porcentAprovado = aprovados * 10;
porcentReprovado = reprovados * 10;
System.out.println("Porcentagem de alunos aprovados: " + porcentAprovado + "%");
System.out.println("Porcentagem de alunos reprovados: " + porcentReprovado + "%");
System.out.println();
System.out.println("Media de notas na turma: " + mediaNotas / 10);
sc.close();
}
}