Câu hỏi:

11/07/2024 614

Bạn Nhật viết chương trình kiểm tra ba số nguyên a, b, c có phải là độ dài của ba cạnh tam giác hay không 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")

Em hãy cho biết chương trình trên đúng chưa. Nếu chưa đúng thì hãy hiệu chỉnh lại cho đúng.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

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")

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

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")