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

Soi lỗi chương trình thống kê đơn hàng TechZone

Lớp 10Lậ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 · 4 tiêu chí chấm

Cửa hàng trực tuyến TechZone ghi lại số lượng đơn hàng bán được mỗi ngày trong n ngày liên tiếp. Bạn Lan viết chương trình Python để tính tổng số đơn hàng trong cả kỳ và tìm ra ngày bán chạy nhất (ngày có số đơn hàng nhiều nhất, đánh số ngày từ 1; nếu có nhiều ngày cùng đạt số lượng cao nhất thì chọn ngày sớm nhất). Tuy nhiên chương trình của Lan cho kết quả sai. Đoạn code của Lan như sau:

  • n = int(input())

  • A = []

  • for i in range(n):

  •     A.append(int(input()))

  • tong = 0

  • for i in range(1, n):

  •     tong = tong + A[i]

  • max_val = A[0]

  • max_idx = 0

  • for i in range(n):

  •     if A[i] >= max_val:

  •         max_val = A[i]

  •         max_idx = i

  • print(tong)

  • print(max_idx + 1)

Em hãy tìm ra 2 lỗi trong đoạn code trên (một lỗi liên quan đến vùng giá trị của range() khi tính tổng, một lỗi liên quan đến phép so sánh khi tìm ngày bán chạy nhất) và viết lại chương trình đã sửa đúng.

Định dạng vào: dòng đầu là số nguyên n; n dòng tiếp theo, mỗi dòng là một số nguyên (số đơn hàng của một ngày).

Định dạng ra: 2 dòng — dòng 1 là tổng số đơn hàng của n ngày, dòng 2 là số thứ tự ngày (đếm từ 1) có số đơn hàng nhiều nhất; nếu có nhiều ngày bằng nhau thì in ra ngày sớm nhất.

Input

Output

Giải thích

5

10

25

25

8

15

83
2

Tổng = 83; giá trị lớn nhất 25 xuất hiện lần đầu ở ngày 2

3

5

5

5

15
1

3 ngày bằng nhau, chọn ngày sớm nhất là ngày 1

#danh sách#list#range#sửa lỗi#IndexError#off-by-one#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