Estou tentando resolver um exercício de vetores em Java onde preciso:
1-) Criar um programa que consiga ler 5 nomes e cinco notas de uma determinada turma em VETOR.
2-) O programa irá ler, calcular e exibir a média das notas da turma.
3- ) E por fim, será exibido a relação de nomes cuja note é superior a esta média.
Só que estou com um problema na hora em que o programa vai ler o segundo nome e a nota do segundo nome, ou seja, o nome do segundo aluno e a sua nota.
import java.util.Scanner;
public class vetorExercicio4{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String[] nome = new String[5];
double[] nota = new double[5];
double soma = 0;
double media;
double maior;
for(int i = 0; i < 5; ++i){
System.out.println("Digite o nome n"+(i+1)+"º : ");
nome[i] = input.nextLine();
System.out.println("Digite a nota do nome n"+(i+1)+"º : ");
nota[i] = input.nextDouble();
soma = soma + nota[i];
}
media = soma/5;
for(int i = 0; i < 5; ++i){
if(nota[i] > media){
maior = nota[i];
System.out.println("O aluno "+nome[i]+" possui média "+maior+", maior que a média "+media);
}
}
A classe Scanner tem um bug quando se usa métodos para leitura de números (nextDouble, nextInt, nextFloat, etc…) ele não consegue limpar o buffer (pesquise a respeito) e para arrumar a duas formas:
1 -
nota[i] = input.nextDouble();
input.nextLine(); //força a limpeza do buffer...
2 -
nota[i] = Double.parseDouble(input.nextLine()); //converte texto em número...
O primeiro caso é uma gambiarra e o segundo mais elegante mas vai envolver conceitos de Exceções (try/catch etc) e se ainda não pegou esses esquemas, sugiro o primeiro caso apenas para aprendizado
Outra dica, evite montar limite de loop dessa forma…
for(int i = 0; i < 5; ++i){
Use o atributo length (todo vetor possui um depois de criado)
for(int i = 0; i < nota.length; ++i){
...
media = soma/nota.length;
Dessa forma se precisar alterar o tamanho do vetor, não precisará mexer no for…
E valeu pela dica do .length no for, meu professor já tinha comentado sobre isso, mas parece que só com o tempo você começa a perceber que é melhor usá-lo.
Olá! Alguém poderia me ajudar com esse programa. Não estou conseguindo resolver.
Desde já agradeço!
Faça um programa que peça ao usuário para informar o tamanho do vetor (quantidade de posições). Em seguida, peça para que o usuário informe valores inteiros que serão inseridos no vetor. Após o vetor ser preenchido, mostre na tela: