154k views
2 votes
Implement the function printTwoLargest that inputs an arbitrary number of positive numbers from the user. The input of numbers stops when the first negative or zero value is entered by the user. The function then prints the two largest values entered by the user. If fewer than two distinct positive numbers are entered a message to that effect is printed instead of printing any numbers. Hint: Duplicates will cause problems. Try to make sure that you find a way to ignore them.

User Peakxu
by
6.0k points

1 Answer

5 votes

Answer:

The function in Python is as follows:

def printTwoLargest():

chk = 0

list1 = []

num = int(input("Enter: "))

while num > 0:

for i in list1:

if i == num:

chk+=1

break;

if chk == 0:

list1.append(num)

chk = 0

num = int(input("Enter: "))

list1.sort()

if len(list1) >= 2:

print("Largest:", list1[-1])

print("Second:", list1[-2])

else:

print("Length of list must be at least 2")

Step-by-step explanation:

This defines the function

def printTwoLargest():

This initializes a check variable to 0

chk = 0

This initializes an empty list

list1 = []

This prompts the user for input

num = int(input("Enter: "))

The following loop is repeated until input is 0 or negative

while num > 0:

The following for loop checks for duplicate

for i in list1:

if i == num: If duplicate is found

chk+=1 The check variable is set to 1

break; And the for loop is exited

The input is appended to the list if the check variable is 0 (i.e. no duplicate)

if chk == 0:

list1.append(num)

This sets the check variable back to 0, for another input

chk = 0

This prompts the user for another input

num = int(input("Enter: "))

This sorts the list

list1.sort()

This prints the two largest if valid user input is 2 or more

if len(list1) >= 2:

print("Largest:", list1[-1])

print("Second:", list1[-2])

if otherwise, this prints that the length must be at least 2

else:

print("Length of list must be at least 2")

User Scott Lafoy
by
5.7k points