C2-13 · Tìm lỗi: trung bình ba bài kiểm tra

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Bài toán gốc. Một dòng chứa điểm ba bài kiểm tra (số thực); in điểm trung bình với đúng 2 chữ số thập phân.

Bạn Nam viết chương trình sau và bị Wrong Answer:

diem_1, diem_2, diem_3 = input().split()
tb = float(diem_1) + float(diem_2) + float(diem_3) / 3
print("Trung binh:", round(tb, 2))

Chương trình có ba lỗi: một lỗi công thức và hai lỗi in. Hãy tìm cả ba, sửa lại rồi nộp bản đã sửa. Hệ thống chấm bản sửa theo bài toán gốc như mọi bài khác.

Dữ liệu vào

Một dòng chứa ba số thực — điểm ba bài kiểm tra, cách nhau một dấu cách.

Kết quả

Một dòng: điểm trung bình với đúng 2 chữ số thập phân.

Ràng buộc

  • Mỗi điểm từ 0 đến 10, viết dạng số nguyên (7) hoặc có một chữ số thập phân (8.5), dùng dấu chấm.

Ví dụ 1

Dữ liệu vào:

7 8.5 6

Kết quả:

7.17

Ví dụ 2

Dữ liệu vào:

7 7 7

Kết quả:

7.00

Giải thích ví dụ

  • Ví dụ 1: ~(7 + 8.5 + 6) / 3 = 21.5 / 3 \approx 7.1667~, in 7.17. Chương trình của Nam tính ~7 + 8.5 + 6/3 = 17.5~ và in Trung binh: 17.5.
  • Ví dụ 2: trung bình đúng bằng 7 nhưng vẫn phải in đủ hai chữ số: 7.00. Sửa xong công thức và bỏ nhãn mà vẫn giữ round(tb, 2) thì chương trình in 7.0 — vẫn sai.

Ghi chú

  • Bảng Lỗi thường gặp (mục 2.8): thiếu ngoặc; in nhãn; in chưa định dạng.
  • round() tạo giá trị mới, còn :.2f quyết định cách in (mục 2.6).

Nguồn trong sách: Bài C2-13, mục 2.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)


Đang tải...