[duvida] Classificação de notas de uma turma

Olá pessoal, tenho o seguinte problema: aça um programa que leia as classificações de exame de APROG de uma turma com n alunos (para um array). O número de alunos (n) é inserido pelo utilizador. De seguida, calcule e mostre a média da turma. Finalmente, mostre quantos alunos reprovaram à disciplina (nota <10).
O programa deve mostrar a média da turma (formatada com 1 casa decimal) e quantos alunos reprovaram à disciplina, em linhas separadas e com o seguinte formato:

media=<media>
reprovacoes=<nº de reprovações>

input deve ser:

5
12
8
17
19
5

output:

media=12.2
reprovacoes=2

Eu consigo calcular as medias porem não sei como encontrar os menores valores digitados que sejam menores que 10 para colocar em reprovações
aqui esta o que eu fiz.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        double soma = 0;
        double media;
        int div = 0;
        int menor = 0;
        double nota[] = new double[6];
        System.out.println("Digite o nome do aluno");
        String nome = sc.next();
        System.out.println("Insira as 5 notas");
        for (int i = 0; i < 6; i++) {
            nota[i] = sc.nextDouble();
            soma += nota[i];
        }
        div = nota.length;
        media = (soma / div);

        if (media >= 10) {
            System.out.println("media=" + media);
            
            System.out.println("reprovado=");
        }

    }

}
  1. A media não tem nada a ver com quem é ou não aprovado.
  2. Não há, no enunciado, nada pedindo menor, por que declarou uma variável com esse nome?
  3. Você não está formatando as casas decimais
  4. Onde está o contador de reprovados?

1 O enunciado pede a media de todas as notas, isso ta sendo obedecido no meu código, não está?
2 realmente não há. foi uma tentativa fracassada de encontrar os menores valores digitados que sejam menores que 10
3 nao sei como fazer isso
4 também nao sei fazer

sou iniciante no java

Me referia a esse trecho, especificamente.

Se o enunciado não pede, simplesmente não faça. Foco. Você vai perder tempo fazendo o que não foi solicitado e não fará o que foi pedido.

Pesquise

Não sabe declarar uma variável e instanciá-la com 0? Não sabe verificar se alguma nota é maior, menor ou igual a média para aprovação na disciplina?

Comentário desnecessário.

mas o enunciado pede sim, ele pede a saida seja a media geral e que seja informado o numero de reprovações (Finalmente, mostre quantos alunos reprovaram à disciplina (nota <10).) sendo assim eu não teria que encontrar os menores valores digitados que sejam menores que 10?

O que o enunciado pede é:

Ou seja, ele só pede qual a média e quantos alunos reprovaram. Nada além disso.

Exemplo:

import java.util.Scanner;

public class ClassificacaoNota {
	private short lotacao = 0;
	private float[] notas;
	private String[] alunos;
	
	private void lerDados(){
		short contador = 1;
		Scanner leitor = new Scanner(System.in);
		
		System.out.print("Lotação da turma: ");
		lotacao = leitor.nextShort();
		
		alunos = new String[lotacao];
		notas = new float[lotacao];
		
		for(short i = 0; i < alunos.length; i++){
			leitor.nextLine();//'Limpa' o scanner
			System.out.println((contador++) + "º aluno");
			System.out.print("Nome: ");
			alunos[i] = leitor.nextLine();
			
			System.out.print("Nota: ");
			notas[i] = leitor.nextFloat();
			
			System.out.println("");
		}
	}
	
	private void exibirDados(){
		System.out.println("\nListagem");
		System.out.printf("%-35s%3s\n", "Nome", "Nota");
		for(short i = 0; i < alunos.length; i++)
			System.out.printf("%-35s%.2f\n\n", alunos[i], notas[i]);
	}
	
	private float calcularMediaTurma(){
		float acumulador = 0;
		for(short i = 0; i < notas.length; i++)
			acumulador += notas[i];
		
		return acumulador / notas.length;
	}
	
	private short contarReprovados(){
		short reprovado = 0;
		for(short i = 0; i < notas.length; i++)
			if(notas[i] < 10)
				reprovado++;
			
		return reprovado;
	}
	
	public static void main(String[] args){
		ClassificacaoNota classificacao = new ClassificacaoNota();
		
		classificacao.lerDados();
		classificacao.exibirDados();
		System.out.printf("\nMédia da turma: %.2f\n", classificacao.calcularMediaTurma());
		System.out.println("Alunos reprovados: " + classificacao.contarReprovados());
	}
}

Rodando…

1 curtida