• 1
    डेटा I/O
    • कार्य
  • 2
    शर्तें
    • कार्य
  • 3
    for लूप
    • कार्य
  • 4
    स्ट्रिंग
    • कार्य
  • 5
    while लूप
    • कार्य
  • 6
    सूचियां
    • कार्य
  • 7
    2D मैट्रिक्स
    • कार्य
  • 8
    डिक्शनरी
    • कार्य
  • 9
    सेट
    • कार्य
  • 10
    फ़ंक्शन
    • कार्य
  • к

पाठ 3. FOR cycle

कठिनाई:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

कार्य«रैंक»

💻 Python

आप और आपके दोस्तों ने अपने पसंदीदा वीडियो गेम "स्पेस रेंजर्स" में एक छोटा टूर्नामेंट आयोजित किया। आप में से प्रत्येक ने एक पार्टी खेली और अंतिम अंक दर्ज किए। अब आप सबसे कठिन कार्य का सामना कर रहे हैं & mdash; केवल विजेता खोजना ही नहीं, बल्कि सभी प्रतिभागियों की पूरी रेटिंग बनाना।

रेटिंग निम्नलिखित नियमों द्वारा निर्धारित की जाती है:

  1. सबसे अधिक अंक वाले खिलाड़ी को पहला स्थान (रैंक 1) मिलता है।
  2. दूसरा सबसे बड़ा परिणाम & mdash; दूसरा स्थान (रैंक 2), और इसी तरह।
  3. यदि कई खिलाड़ियों ने समान अंक प्राप्त किए, तो वे सभी एक ही स्थान साझा करते हैं। उदाहरण के लिए, यदि दो खिलाड़ियों ने अधिकतम अंक प्राप्त किए, तो दोनों को रैंक 1 मिलता है। अगले खिलाड़ी को रैंक 3 मिलेगा (क्योंकि पहले दो स्थान भरे हुए हैं)।

आपका कार्य प्रतिभागियों की सूची और उनके अंकों को पढ़ना है, और उसी क्रम में उनकी अंतिम रैंक प्रदर्शित करना है।

आवश्यकताएँ:
केवल बुनियादी निर्माणों का उपयोग करें: डेटा का इनपुट और आउटपुट, सशर्त ऑपरेटर ( if ) और लूप & nbsp; 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 के बारे में कोई भी सवाल पूछें — मैं functions, methods समझा सकता हूँ और मौजूदा task में मदद कर सकता हूँ!