• 1
    Entrée et sortie
    • Tâches
  • 2
    Conditions
    • Tâches
  • 3
    Boucle for
    • Tâches
  • 4
    Chaînes
    • Tâches
  • 5
    Boucle while
    • Tâches
  • 6
    Listes
    • Tâches
  • 7
    Tableaux 2D
    • Tâches
  • 8
    Dictionnaires
    • Tâches
  • 9
    Ensembles
    • Tâches
  • 10
    Fonctions et récursion
    • Tâches
  • к

Leçon 3. FOR cycle

Difficulté :

Exercice«Classements»

💻 Python

Vous et vos amis avez organisé un petit tournoi dans votre jeu vidéo préféré "Space Rangers". Chacun de vous a joué une partie et a enregistré les scores finaux. Vous êtes maintenant confrontés à la tâche la plus difficile & mdash; Non seulement trouver le gagnant, mais établir un classement complet de tous les participants.

rn

Le classement est déterminé par les règles suivantes :

rn
    rn
  1. Un joueur avec le plus grand nombre de points reçoit la 1ère place (rang 1).
  2. rn
  3. Le deuxième meilleur résultat & mdash; 2ème place (rang 2), et ainsi de suite.
  4. rn
  5. Si plusieurs joueurs ont obtenu le même nombre de points, ils partagent tous la même place. Par exemple, si deux joueurs ont obtenu le nombre maximum de points, ils reçoivent tous deux le rang 1. Le joueur suivant recevra le rang 3 (car les deux premières places sont occupées).
  6. rn
rn

Le programme reçoit en entrée le nombre de participants n , puis n lignes avec les noms des joueurs et leurs points. Il affiche leurs rangs finaux dans le même ordre.

rn

Exigences :
Utilisez uniquement des constructions de base : entrée et sortie de données, opérateurs conditionnels ( if ) et boucles & nbsp; for . Essayez de ne pas utiliser de fonctions de tri intégrées ou d'autres structures de données complexes.

Format d entrée

Verres des joueurs dans le tournoi (une ligne contenant des entiers séparés par un espace).

Format de sortie

Rangs pour chaque joueur dans le même ordre (une ligne contenant des entiers séparés par un espace).

Exemple

Entrée

100 150 120 150 80

Sortie

4 1 3 1 5 & nbsp;

Indice

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Solution du développeur
# Получаем на вход строку с очками, разделенными пробелами
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=' ')

🎉 Félicitations ! 🎉

Tu as brillamment résolu la tâche ! C était difficile, mais tu as trouvé la bonne solution. Tu es encore plus proche de maîtriser la programmation ! Continue ainsi.

AD

Publicité

red-snake blue-snake green-snake

Exécution de votre code...

Assistant IA

Bonjour ! Je suis ton assistant de programmation. Pose moi toutes tes questions sur Python — je peux t expliquer les fonctions, les méthodes et t aider avec la tâche en cours !