Bài 9. Thực hành câu lệnh lặp
Bài 2 trang 84 Tin học 10 Cánh diều: Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím có bao nhiêu ước thực sự (khác 1 và n). Tuy nhiên, chương trình chạy ra kết quả sai, em hãy sửa lỗi giúp Hà.
Lời giải ngắn
Sai về ngữ pháp cấu trúc câu lệnh, sau lệnh while có dấu:
Sửa lỗi: Thêm dấu : cuối dòng lệnh thứ 4.
Lời giải chi tiết
Chương trình ở hình 2 có 2 lỗi:
Một là, sau điều kiện ở lệnh while phải có dấu hai chấm (:).
Hai là, chương trình là đếm số ước thực sự của n, vì vậy sau mỗi lần tìm thấy ước của n (n%i == 0) thì biến so_uoc tăng lên 1 đơn vị. Giá trị cuối cùng của biến so_uoc chính là số lượng ước của n. Vì vậy, câu lệnh print phải được đặt ngoài vòng lặp while để sau khi đếm xong số ước chúng ta mới viết ra màn hình.