Olá, pessoal. Estou precisando de uma ajuda nesse exercício. As instruções estão a baixo. Minha dificuldade é em realizar a exigência da letra c). Gostaria de dicas sobre o que modificar.
/Crie uma estrutura representando os alunos de uma disciplina.
A estrutura deve conter o nome do aluno, polo, nota da AO01, nota da AO02, nota da AP01
e a nota da N1. Desenvolva um programa que:
a) Para cada aluno, calcule a nota da N1, armazene no registro de cada aluno para os
alunos e mostra a N1 calculada;
b) Permita ao usuário entrar com os dados de 5 alunos.
c) Mostre o polo do aluno com maior nota na AO01.
d) Encontre a média geral da N1./
private static class Dados{
String nome;
String polo;
float AO01;
float AO02;
float AP01;
}
public static void main (String args[]){
final int tamanho = 5;
Dados vet[] = new Dados[tamanho];
Scanner e = new Scanner (System.in);
int i;
float soma = 0, media;
float N1;
float menor, maior;
String nome_maior;
String polo;
for(i=0; i<tamanho; i++) {
vet[i] = new Dados();
vet[i].nome="";//vazia; .'nome do campo'
vet[i].AO01 = 0;
vet[i].AO02 = 0;
vet[i].AP01 = 0;
vet[i].polo="";
}
for(i=0; i<tamanho; i++){
System.out.println("Dados da pessoa "+i);
System.out.println("Digite o nome: ");
e = new Scanner(System.in);
vet[i].nome = e.nextLine();
System.out.println("Digite a nota da AO01: ");
vet[i].AO01 = e.nextFloat();
System.out.println("Digite a nota da AO02: ");
vet[i].AO02 = e.nextFloat();
System.out.println("Digite a nota da AP02: ");
vet[i].AP01 = e.nextFloat();
e = new Scanner(System.in);
System.out.println("Digite o polo: ");
vet[i].polo = e.nextLine();
System.out.println("Dados cadastrados com sucesso!\n");
}
for(i=0; i<tamanho; i++){
N1 = (vet[i].AO01 + vet[i].AO02 + vet[i].AP01 )/ 3;
soma = soma + N1;
}
media = soma/tamanho;
System.out.println("A média das notas N1 cadastradas é: "+media);
menor = vet[0].AO01;
maior = vet[0].AO01;
nome_maior = vet[0].nome;
polo = vet[0].polo;
for(i=0; i<tamanho; i++){
if(vet[i].AO01 < menor){
}
if(vet[i].AO01 > maior){
maior = vet[i].AO01;
nome_maior = vet[i].nome;
}
}
System.out.println("Nome da pessoa com a maior nota na AO01: "+nome_maior+ "; Polo: " +polo);
}
}
Procure quem tem a maior nota AO01 e quando você fizer isso você vai ter a localização do mesmo no vetor, por cada aluno guardar o mesmo números nas diferentes listas.
Eu fiz com base no seu e cheguei nesse código funcional
public static void main(String args[]) {
final int tamanho = 2;
Dados vet[] = new Dados[tamanho];
Scanner e = new Scanner(System.in);
int i;
float soma = 0, media;
float N1;
float menor, maior;
String nomeNota = "";
float menorNota = 10;
String polo;
float maiorNota = 0;
for (i = 0; i < tamanho; i++) {
vet[i] = new Dados();
vet[i].nome = "";
vet[i].AO01 = 0;
vet[i].AO02 = 0;
vet[i].AP01 = 0;
vet[i].polo = "";
}
for (i = 0; i < tamanho; i++) {
System.out.println("Dados da pessoa " + (i + 1));
System.out.println("Digite o nome: ");
e = new Scanner(System.in);
vet[i].nome = e.nextLine();
System.out.println("Digite a nota da AO01: ");
vet[i].AO01 = e.nextFloat();
System.out.println("Digite a nota da AO02: ");
vet[i].AO02 = e.nextFloat();
System.out.println("Digite a nota da AP02: ");
vet[i].AP01 = e.nextFloat();
e = new Scanner(System.in);
System.out.println("Digite o polo: ");
vet[i].polo = e.nextLine();
System.out.println("Dados cadastrados com sucesso!\n");
}
// vet[0].nome = "nome1";
// vet[0].AO01 = 10;
// vet[0].AO02 = 10;
// vet[0].AP01 = 6;
// vet[0].polo = "asd";
//
// vet[1].nome = "nome2";
// vet[1].AO01 = 8;
// vet[1].AO02 = 5;
// vet[1].AP01 = 1;
// vet[1].polo = "dsa";
for (i = 0; i < tamanho; i++) {
N1 = (vet[i].AO01 + vet[i].AO02 + vet[i].AP01) / 3;
soma = soma + N1;
}
media = soma / tamanho;
System.out.println("A média das notas N1 cadastradas é: " + media);
// Maior nota e Nome
for (int a = 0; a < tamanho; a++) {
if (vet[a].AO01 > maiorNota) {
maiorNota = vet[a].AO01;
nomeNota = vet[a].nome;
}
}
System.out.println(maiorNota);
System.out.println(nomeNota);
}
O que eu fiz:
Inicializei as variáveis da maior nota e do nome
Com a maior nota sendo 0, qualquer valor maior que o mesmo será adicionado na variável e como naquele instante que tenho o “número” da pessoa, já posso pegar o número dela apartir do indice.