Câu hỏi:

11/07/2024 203

Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng:

• Dòng thứ nhất chứa số nguyên không âm a.

• Dòng thứ hai chứa số nguyên không âm b.

Kiểm tra xem a có chia hết cho b hay không.

Em hãy rà soát xem cách cài đặt của chương trình này có tiềm tàng một trường hợp lỗi nào không:

a = int(input())

b = int (input())

0:if a % b else:==

print("a chia hết cho b")

print("a không chia hết cho b")

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Chương trình xảy ra lỗi khi b=0.

Sửa lại: Kiểm tra xem b có khác 0 hay không trước khi thực hiện phép chia lấy phần dư.

a = int(input())

b = int(input())

if b ==0:

print("Nhập lại b khác 0")

elif a % b==0

print("a chia hết cho b")

esle:

print("a không chia hết cho b")

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

Lời giải

Có hai lỗi:

Lỗi cú pháp: Dòng 3 sửa tên biến yera thành year.

Lỗi thuật toán: Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Nếu chia hết cho 4 (dòng 2) và chia hết cho 100 (dòng 3) thì nếu chia hết cho 400 (dòng 4) là năm nhuận, ngược lại là năm không nhuận. Nhưng dòng 4 là điều kiện không chia hết nên sửa lại dòng 4 từ phép toán “! =” thành “==”.

Lời giải

Do đã sắp xếp ba số theo thứ tự không giảm a[0] <a[1]<a[2] nên em chỉ cần kiểm tra hai cạnh nhỏ có tổng lớn hơn cạnh còn lại hay không. Chương trình của bạn Nhật sai ở dòng i f a[0] + a[1] < a[2]:.

Chương trình được sửa lại như sau:

a = [int (v) for v in input ().split()]

sort (a)

if a[0] + a [1] > a [2]:

else:

print("Là ba cạnh của tam giác")

print("Không phải ba cạnh của tam giác")