• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 3. FOR cycle

Dificuldade:

Tarefa«Classificações»

💻 Python

Você e seus amigos organizaram um pequeno torneio no seu videogame favorito "Space Rangers". Cada um de vocês jogou uma partida e registrou as pontuações finais. Agora vocês enfrentam a tarefa mais difícil & mdash; Não apenas encontrar o vencedor, mas criar uma classificação completa de todos os participantes.

rn

A classificação é determinada pelas seguintes regras:

rn
    rn
  1. O jogador com o maior número de pontos recebe o 1º lugar (rank 1).
  2. rn
  3. O segundo maior resultado & mdash; 2º lugar (rank 2), e assim por diante.
  4. rn
  5. Se vários jogadores marcaram a mesma quantidade de pontos, todos compartilham o mesmo lugar. Por exemplo, se dois jogadores marcaram o número máximo de pontos, ambos recebem o rank 1. O próximo jogador receberá o rank 3 (já que os dois primeiros lugares estão ocupados).
  6. rn
rn

O programa recebe um array de números inteiros & mdash; as pontuações dos jogadores. Ele exibe suas classificações finais na mesma ordem.

rn

Requisitos:
Use apenas construções básicas: entrada e saída de dados, operadores condicionais ( if ) e loops & nbsp; for . Tente não usar funções de ordenação embutidas ou outras estruturas de dados complexas.

Formato de entrada

Copos dos jogadores no torneio (uma linha contendo inteiros separados por um espaço).

Formato de saída

Ranques para cada jogador na mesma ordem (uma linha contendo inteiros separados por um espaço).

Exemplo

Entrada

100 150 120 150 80

Saída

4 1 3 1 5 & nbsp;

Dica

There will be no clue here, decide for yourself!

main.py
Teste 1
Teste 2
Teste 3
Teste 4
Teste 5
Teste 6
Teste 7
Teste 8
Teste 9
Teste 10
Solução do desenvolvedor
# Получаем на вход строку с очками, разделенными пробелами
scores_str = input().split()

# Создаем пустой список, в который будем складывать числовые значения очков
scores = []
# С помощью цикла for проходим по каждому элементу в списке строк
for s in scores_str:
    # Преобразуем каждую строку в целое число и добавляем в список scores
    scores.append(int(s))

# Создаем список для будущих рангов, по размеру такой же, как список очков
# Изначально он может быть заполнен любыми значениями, например, нулями
ranks = [0] * len(scores)

# Главный цикл: проходим по каждому очку в списке, чтобы вычислить его ранг
# Переменная 'i' будет индексом текущего игрока
for i in range(len(scores)):
    # Для каждого очка начинаем считать ранг с 1 (самый высокий ранг)
    current_rank = 1
    # Вложенный цикл: сравниваем текущее очко (scores[i]) со всеми остальными в списке
    # Переменная 'j' будет индексом игрока, с которым мы сравниваем
    for j in range(len(scores)):
        # Если мы находим очко (scores[j]), которое строго больше текущего (scores[i])...
        if scores[j] > scores[i]:
            # ...то ранг нашего текущего игрока 'i' становится хуже, поэтому увеличиваем его на 1
            current_rank += 1
    
    # После сравнения со всеми остальными, записываем вычисленный ранг в список рангов
    # на ту же позицию 'i', где находится очко этого игрока
    ranks[i] = current_rank

# Выводим итоговый список рангов
# Проходим циклом по всем элементам списка ranks
for r in ranks:
    # Печатаем каждый ранг, добавляя после него пробел, чтобы все было в одну строку
    print(r, end=' ')

🎉 Parabéns! 🎉

Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.

AD

Publicidade

red-snake blue-snake green-snake

Executando seu código...

Assistente de IA

Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!