1
#O usuário informa o número de alunos totais na sala, em seguida são declaradas as variáveis que complementarão os loops
alunos = int(input("Qual o número de alunos na sala?\n"))
notasAlunos = []
count = 0
#loop de armazenamento de notasXalunos
while count < alunos:
notaAluno = int(input("Qual a nota do aluno " + str(count + 1) + "? (0 a 100 pontos)\n"))
notasAlunos.append(notaAluno)
count = count + 1
#count zerado para ser reutilizado no próximo loop
count = 0
#Variáveis de notas
menorNota = 100
maiorNota = 0
alunosMeN,alunosMaN = 0,0
#loop de verificação do valor de notas (min e max), e verificação de notas mínimas ou máximas iguais
while count < len(notasAlunos):
if notasAlunos[count] < menorNota:
menorNota = notasAlunos[count]
if notasAlunos[count] > maiorNota:
maiorNota = notasAlunos[count]
if notasAlunos[count] == menorNota:
alunosMeN = alunosMeN + 1
elif notasAlunos[count] == maiorNota:
alunosMaN = alunosMaN + 1
count = count + 1
#print com os valores da maior e menor nota, junto ao número de alunos que tiraram determinada nota
print("A maior nota tirada foi ", maiorNota, " Essa nota foi tirada por ", alunosMaN, " aluno(s)\n")
print("A menor nota tirada foi ", menorNota, " Essa nota foi tirada por ", alunosMeN, " aluno(s)\n")
Given the above code when inserting, for example, 5
students, with the grades 10, 22, 10, 100, 100
The program does not display 2 students with the highest grades as desired, but 3 students.
Why does this happen? How can I solve?
I’m starting now in python, and yes, I define the biggest and smallest notes, because that’s exactly what I have to do, so I can make the comparisons. I’ll take a look at the references, thanks :D
– Murilo Melo
@The problem is just doing it in the same loop. For example, the first note is 10, which is greater than 0 (initial), so you update the value to 10 and then add to the counter if the student’s grade is equal to the highest grade. The highest note will not be 10, but even so in this loop you compare and add the counter.
– Woss
was adding the note, but saw that I should not, and I zero the counter, the addition in Count occurs at the end of all checks, and without that addition, the loop would be infinite
– Murilo Melo
@Withered by that counter:
alunosMaN = alunosMaN + 1
– Woss