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ºdereprovações>
input deve ser:
512817195
output:
media=12.2reprovacoes=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.
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);doublesoma=0;doublemedia;intdiv=0;intmenor=0;doublenota[]=newdouble[6];System.out.println("Digite o nome do aluno");Stringnome=sc.next();System.out.println("Insira as 5 notas");for(inti=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=");}}}
A media não tem nada a ver com quem é ou não aprovado.
Não há, no enunciado, nada pedindo menor, por que declarou uma variável com esse nome?
Você não está formatando as casas decimais
Onde está o contador de reprovados?
V
vfraanco
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
D
darlan_machado
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.
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.
V
vfraanco
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?
D
darlan_machado
O que o enunciado pede é:
Ou seja, ele só pede qual a média e quantos alunos reprovaram. Nada além disso.
I
Solucao aceita
Iohannes1 like
Exemplo:
importjava.util.Scanner;publicclassClassificacaoNota{privateshortlotacao=0;privatefloat[]notas;privateString[]alunos;privatevoidlerDados(){shortcontador=1;Scannerleitor=newScanner(System.in);System.out.print("Lotação da turma: ");lotacao=leitor.nextShort();alunos=newString[lotacao];notas=newfloat[lotacao];for(shorti=0;i<alunos.length;i++){leitor.nextLine();//'Limpa' o scannerSystem.out.println((contador++)+"º aluno");System.out.print("Nome: ");alunos[i]=leitor.nextLine();System.out.print("Nota: ");notas[i]=leitor.nextFloat();System.out.println("");}}privatevoidexibirDados(){System.out.println("\nListagem");System.out.printf("%-35s%3s\n","Nome","Nota");for(shorti=0;i<alunos.length;i++)System.out.printf("%-35s%.2f\n\n",alunos[i],notas[i]);}privatefloatcalcularMediaTurma(){floatacumulador=0;for(shorti=0;i<notas.length;i++)acumulador+=notas[i];returnacumulador/notas.length;}privateshortcontarReprovados(){shortreprovado=0;for(shorti=0;i<notas.length;i++)if(notas[i]<10)reprovado++;returnreprovado;}publicstaticvoidmain(String[]args){ClassificacaoNotaclassificacao=newClassificacaoNota();classificacao.lerDados();classificacao.exibirDados();System.out.printf("\nMédia da turma: %.2f\n",classificacao.calcularMediaTurma());System.out.println("Alunos reprovados: "+classificacao.contarReprovados());}}