• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 3. FOR cycle

难度:

任务«等级»

💻 Python

你和你的朋友们在你最喜欢的电子游戏《太空游侠》中组织了一场小型锦标赛。你们每人进行了一局游戏,并记录了最终得分。现在你面临最艰巨的任务——不仅要找出获胜者,还要对所有参与者进行完整排名。

rn

排名按以下规则确定:

rn
    rn
  1. 得分最高的玩家获得第1名(排名1)。
  2. rn
  3. 第二高的结果——第2名(排名2),以此类推。
  4. rn
  5. 如果多名玩家得分相同,则他们共享同一排名。例如,如果两名玩家获得了最高分,则他们都获得排名1。下一名玩家将获得排名3(因为前两个名次已被占用)。
  6. rn
rn

输入数据包含玩家数量及其得分。输出数据以相同顺序显示他们的最终排名。

rn

要求:
仅使用基本结构:数据输入输出、条件运算符( if )和循环 for 。尽量不要使用内置排序函数或其他复杂数据结构。

输入格式

比赛中选手的眼镜(一行包含以空格分隔的整数)。

输出格式

每位玩家的排名,顺序相同(一行包含以空格分隔的整数)。

示例

输入

100 150 120 150 80

输出

4 1 3 1 5 & nbsp;

提示

There will be no clue here, decide for yourself!

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Получаем на вход строку с очками, разделенными пробелами
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=' ')

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!