• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 3. FOR cycle

Schwierigkeit:

Aufgabe«Rangfolgen»

💻 Python

Du und deine Freunde habt ein kleines Turnier in eurem Lieblingsvideospiel "Space Rangers" veranstaltet. Jeder von euch hat eine Partie gespielt und die endgültigen Punkte notiert. Jetzt steht ihr vor der schwierigsten Aufgabe — nicht nur den Gewinner zu finden, sondern eine vollständige Wertung aller Teilnehmer zu erstellen.

Die Wertung wird nach folgenden Regeln bestimmt:

  1. Ein Spieler mit der höchsten Punktzahl erhält den 1. Platz (Rang 1).
  2. Das zweithöchste Ergebnis — 2. Platz (Rang 2), und so weiter.
  3. Wenn mehrere Spieler die gleiche Punktzahl erzielt haben, teilen sie sich denselben Platz. Wenn zum Beispiel zwei Spieler die maximale Punktzahl erreicht haben, erhalten beide den Rang 1. Der nächste Spieler erhält den Rang 3 (da die ersten beiden Plätze belegt sind).

Ihre Aufgabe ist es, ein Programm zu schreiben, das die Punkte aller Teilnehmer liest und ihre endgültigen Ränge in derselben Reihenfolge ausgibt.

Anforderungen:
Verwenden Sie nur grundlegende Konstrukte: Datenein- und -ausgabe, bedingte Anweisungen ( if ) und Schleifen   for . Versuchen Sie, keine eingebauten Sortierfunktionen oder andere komplexe Datenstrukturen zu verwenden.

Eingabeformat

Gläser der Spieler im Turnier (eine Zeile mit ganzen Zahlen, getrennt durch ein Leerzeichen).

Ausgabeformat

Ränge für jeden Spieler in derselben Reihenfolge (eine Zeile mit ganzen Zahlen, getrennt durch ein Leerzeichen).

Beispiel

Eingabe

100 150 120 150 80

Ausgabe

4 1 3 1 5 & nbsp;

Hinweis

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
Entwicklerlösung
# Получаем на вход строку с очками, разделенными пробелами
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=' ')

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!