Môn Tin họcQuản lý học tập Tin học

Tìm lỗi trong chương trình theo dõi biến động số dư ví điện tử

Lớp 11Lập trìnhpythonGiải quyết vấn đề với máy tínhVận dụng cao

Thang điểm 10 · 5 test case chấm tự động · 3 tiêu chí chấm

Bạn của em viết chương trình vidien_tu.py để nhập vào các giá trị biến động số dư ví điện tử mỗi tháng trong học kì (số nguyên, có thể âm nếu chi nhiều hơn nạp), rồi tính và in ra: số dư biến động trung bình, giá trị biến động cao nhất, giá trị biến động thấp nhất. Chương trình dưới đây chạy được nhưng cho kết quả sai khi tất cả các giá trị nhập vào đều là số âm (hoặc đều là số dương):

line = input("Hay nhap cac gia tri bien dong so du moi thang: ")
marks = [int(x) for x in line.split()]
total = 0
Min = 0
Max = 0
for m in marks:
    total = total + m
    if Min > m:
        Min = m
    if Max < m:
        Max = m
print("Trung binh:", total / len(marks))
print("Cao nhat:", Max)
print("Thap nhat:", Min)

Em hãy: (1) chỉ ra chỗ sai trong chương trình và giải thích tại sao khởi tạo Min = 0, Max = 0 lại gây ra kết quả sai; (2) sửa lại chương trình cho đúng (giữ nguyên cấu trúc nhập một dòng số nguyên cách nhau bởi dấu cách, in kết quả theo đúng 3 dòng như trên).

Định dạng vào: một dòng chứa các số nguyên (biến động số dư mỗi tháng), cách nhau bởi dấu cách.

Định dạng ra: ba dòng: trung bình, giá trị cao nhất, giá trị thấp nhất, theo đúng nhãn như chương trình gốc.

InputOutputGiải thích
-5 -3 -8 -2Trung binh: -4.5
Cao nhat: -2
Thap nhat: -8
Toàn số âm, nếu khởi tạo Max=0 chương trình lỗi sẽ in Cao nhat: 0 (sai)
5 3 8 2Trung binh: 4.5
Cao nhat: 8
Thap nhat: 2
Toàn số dương, nếu khởi tạo Min=0 chương trình lỗi sẽ in Thap nhat: 0 (sai)
#mảng một chiều#gỡ lỗi#Min Max#vòng lặp for#category:tu_duy_phan_bien#difficulty:analyzing

Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.

Giáo viên đăng nhập để giao bài