Exercício Python 078: Faça um programa que leia 5 valores numéricos e guarde-os em uma lista. No final, mostre qual foi o maior e o menor valor digitado e as suas respectivas posições na lista. ( Meu código não está dizendo a posição do maior, oquê há de errado?
listanum = []
mai = 0
men = 0
for c in range (0, 5):
listanum.append(int(input(f'Insira um valor para posição {c}: ')))
if c == 0:
mai = men = listanum[c]
else:
if listanum[c] > mai:
mai = listanum[c]
if listanum[c] < men:
men = listanum[c]
print(f'Você digitou os valores: {listanum} ')
for i, v in enumerate(listanum):
if v == mai:
print(f'{i}...', end='')
print()
print(f'O menor digitado foi {men} nas posições', end=' ')
for i, v in enumerate(listanum):
if v == men:
print(f'{i}...', end='')
print(f'O maior digitado foi {mai} nas posições', end=' ')
print()
Soluções para a tarefa
A tua solução não está incorreta, apenas incompleta.
Note que a linha "print(f'O maior digitado foi {mai} nas posições', end=' ')" está, por algum motivo deslocada. vou deixar o código abaixo pra que fique mais claro.
Obs.: Os pontos que precedem algumas das linhas de programação não fazem parte do programa, foram colocadas apenas para garantir a indentação do código.
Obs2: O código abaixo não foi criado por mim, foi feita apenas a "correção" do programa disponibilizado pelo usuário. Não houve qualquer outra alteração.
[Python 3.8]
listanum = []
mai = 0
men = 0
for c in range (0, 5):
.....listanum.append(int(input(f'Insira um valor para posição {c}: ')))
.....if c == 0:
..........mai = men = listanum[c]
.....else:
..........if listanum[c] > mai:
...............mai = listanum[c]
..........if listanum[c] < men:
...............men = listanum[c]
print(f'Você digitou os valores: {listanum} ')
print(f'O maior digitado foi {mai} nas posições', end=' ')
for i, v in enumerate(listanum):
.....if v == mai:
..........print(f'{i}...', end='')
print()
print(f'O menor digitado foi {men} nas posições', end=' ')
for i, v in enumerate(listanum):
.....if v == men:
..........print(f'{i}...', end='')