Câu hỏi:

13/07/2024 701

Chỉnh sửa lại chương trình để người dùng có thể:

a)Tra cứu các đầu điểm kiểm tra theo STT (số thứ tự) của học sinh. Quy ước số thứ tự bắt đầu từ 1. Nếu người dùng nhập STT lớn hơn số lượng học sinh thì chương trình thông báo STT không hợp lệ và yêu cầu nhập lại.

b)Tra cứu điểm kiểm tra cụ thể lần thứ n của một học sinh theo STT. Nếu n và STT không hợp lệ chương trình cần thông báo và yêu cầu nhập lại.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

marks = []

line = input("Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: ")

marks = [float(x) for x in line.split()]

total = 0

min_mark = marks[0]

max_mark = marks[0]

num_students = len(marks)

 

for m in marks:

  total += m

    if min_mark > m:

        min_mark = m

    if max_mark < m:

        max_mark = m

print("Điểm trung bình: ", total / num_students)

print("Điểm cao nhất: ", max_mark)

print("Điểm thấp nhất: ", min_mark)

while True:

    stt = int(input("Nhập vào STT (1 <= STT <= số lượng học sinh): "))

    if stt < 1 or stt > num_students:

        print("STT không hợp lệ. Vui lòng nhập lại!")

    else:

        print("Điểm của học sinh có STT", stt, "là:", marks[stt - 1])

        break

while True:

    stt = int(input("Nhập vào STT của học sinh: "))

    if stt < 1 or stt > num_students:

        print("STT không hợp lệ. Vui lòng nhập lại!")

    else:

        n = int(input("Nhập vào số lần kiểm tra cần tra cứu (1 <= n <= số lượng điểm kiểm tra): "))

        if n < 1 or n > len(marks):

            print("N không hợp lệ. Vui lòng nhập lại!")

        else:

            print("Điểm kiểm tra lần thứ", n, "của học sinh có STT", stt, "là:", marks[stt - 1])

            break

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

marks = []

line = input("Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: ")

marks = [float(x) for x in line.split()]

total = 0

min_mark = marks[0]

max_mark = marks[0]

for m in marks:

    total += m

    if min_mark > m:

        min_mark = m

    if max_mark < m:

        max_mark = m

#a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.

print("Điểm trung bình: ", total / len(marks))

print("Điểm cao nhất: ", max_mark)

print("Điểm thấp nhất: ", min_mark)

print("Điểm đầu tiên: ", marks[0])

print("Điểm cuối cùng: ", marks[-1])

#b)Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ 1 ứng với điểm đầu tiên, nếu n lớn hơn tổng số đầu điềm hoặc nhỏ hơn 1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.

while True:

    try:

        n = int(input("Nhập n để tra cứu điểm đầu tiên thứ n (n bắt đầu từ 1): "))

        if n < 1 or n > len(marks):

            print("Số n không hợp lệ. Vui lòng nhập lại.")

            continue

        print("Điểm đầu tiên thứ", n, "là:", marks[n - 1])

        break

    except ValueError:

        print("Số n không hợp lệ. Vui lòng nhập lại.")

Lời giải

ds=list(map(str,input().split()))

c={}

for i in ds:

    if i in c:

        c[i] =c[i]+1

    else:

        c[i] = 1

print('số tên khác nhau là',len(c))

print('mỗi tên có số lần xuất hiện là:')

for i in c:

    print(i, c[i])