Нахождение второго наименьшего числа без использования списков, функций или словаря - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь создать программу, в которой пользователь вводит определенное количество учеников, их имена и результаты тестов, и программа должна напечатать второй наименьший балл и имя студента. Я новичок в python и я не изучал коллекции, такие как списки и словарь, поэтому, пожалуйста, будьте проще с циклами if, else и while. Ниже приведен код, который у меня есть, который печатает второе по величине число вместо второго по наименьшему.

n= int(input("Enter number of students:"))
low_name= ','
low_name_2= ','
low_score= 0
low_score_2= 0
for i in range(n):
    name= input("Please enter student" + str(i+1) + "name:\n")
    score= int(input("Please enter student" + str(i+1) + "score:\n"))
    while score < 0 or score > 100:
            print("Please enter score in range of 0-100")
            score= int(input("Please enter student" + str(i+1) + "score:\n"))

    if score > low_score:
           low_name_2 = low_name
           low_score_2 = low_score
           low_name = name
           low_score = score


    elif score > low_score_2:
            low_score_2 = score
            low_name_2 = name
print("2nd lowest student is ", low_name_2 , " with score ", str(low_score_2))

1 Ответ

0 голосов
/ 07 марта 2020

Ваш лог c был близок. Просто измените low_score и low_score_2 на 101 в своем объявлении о них, а затем измените знаки > на < в выражениях if.

Окончательный код:

n= int(input("Enter number of students:"))
low_name= ','
low_name_2= ','
low_score=101
low_score_2=101
for i in range(n):
    name= input("Please enter student" + str(i+1) + "name:\n")
    score= int(input("Please enter student" + str(i+1) + "score:\n"))
    while score < 0 or score > 100:
        print("Please enter score in range of 0-100")
        score= int(input("Please enter student" + str(i+1) + "score:\n"))

    if score < low_score:
       low_name_2 = low_name
       low_score_2 = low_score
       low_name = name
       low_score = score
    elif score < low_score_2:
       low_score_2 = score
       low_name_2 = name
print("2nd lowest student is ", low_name_2 , " with score ", str(low_score_2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...