Olá estou na duvida se posso usar o seguinte raciocínio para a questao 6, ou estaria alguma coisa fora dessas condições? teria que colocar algo de igualdade?
# Coletamos os numeros
n1 = float(input('Digite o 1º número: '))
n2 = float(input('Digite o 2º número: '))
n3 = float(input('Digite o 3º número: '))
if n1 < n2 and n2 < n3:
print(f'{n3}, {n2}, {n1}')
elif n2 < n1 and n1 < n3:
print(f'{n3}, {n1}, {n2}')
elif n3 < n1 and n1 < n2:
print(f'{n2}, {n1}, {n3}')
O seu código está indo bem, mas ele não cobre todos os casos possíveis, principalmente quando dois números são iguais ou estão em outra ordem. Por exemplo, se você digitar:
n1 = 3, n2 = 2, n3 = 1 → seu código não mostra nada, porque essa ordem não está nos seus if
Abaixo deixo uma sugestão:
n1 = float(input('Digite o 1º número: '))
n2 = float(input('Digite o 2º número: '))
n3 = float(input('Digite o 3º número: '))
if n1 >= n2 and n2 >= n3:
print(f'{n1}, {n2}, {n3}')
elif n1 >= n3 and n3 >= n2:
print(f'{n1}, {n3}, {n2}')
elif n2 >= n1 and n1 >= n3:
print(f'{n2}, {n1}, {n3}')
elif n2 >= n3 and n3 >= n1:
print(f'{n2}, {n3}, {n1}')
elif n3 >= n1 and n1 >= n2:
print(f'{n3}, {n1}, {n2}')
else:
print(f'{n3}, {n2}, {n1}')
Note que utilizei >= em vez de apenas < para garantir que os casos de igualdade sejam tratados corretamente. Com isso, o programa deve exibir os números em ordem decrescente, mesmo que alguns deles sejam iguais.
Destaco, que você também poderá ver outra resolução no botão :
Espero ter ajudado.
Qualquer dúvida, compartilhe no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!
O código só cobre algumas combinações possíveis de ordem dos três númerosmas, não todas. Além disso, não trata os casos em que dois ou três números são iguais, o que pode levar o programa a não imprimir nada em algumas situações.