Câu hỏi:

21/07/2024 76

Chương trình dưới đây thực hiện nhập từ thiết bị chuẩn hai dòng:

• Dòng thứ nhất chứa danh sách 4 gồm các số nguyên.

• Dòng thứ hai chứa số nguyên x.

Chương trình sẽ kiểm tra xem giá trị x có xuất hiện trong danh sách A hay không. Chương trình cho ra kết quả sai với nhiều bộ dữ liệu A và x. Hãy kiểm thử và sửa lỗi trong chương trình:

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

X =

int (input())

for v in A:

if v == X:

print("Tìm thấy giá trị x trong A")

break

else:

print("Không tìm thấy giá trị x trong A")

break 

Trả lời:

verified Giải bởi Vietjack

Chương trình cho ra kết quả sai trong trường hợp 4=[1, 2, 3, 4, 5] và x=2. Nguyên nhân: Chỉ duy nhất phần tử đầu tiên trong danh sách được kiểm tra. Sửa lại: Đưa kết luận “không tìm thấy” ra ngoài vòng lặp và thêm một biến boolean để đánh dấu sự xuất hiện của x.

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

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

x = int(input())

found = False

for v in A:

if v == X:

print("Tìm thấy giá trị x trong A")

found = True

break

if not found: print("Không tìm thấy giá trị x trong A")

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

Câu 1:

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

Xem đáp án » 13/07/2024 119

Câu 2:

Năm nhuận

Trong giờ thực hành, một bạn viết chương trình kiểm tra năm year có phải năm nhuận hay không. Nhưng chương trình còn lỗi, em hãy sửa lỗi trong chương trình sau giúp bạn:

Năm nhuận Trong giờ thực hành, một bạn viết chương trình kiểm tra năm year có phải năm nhuận hay không. (ảnh 1)

Xem đáp án » 21/07/2024 86

Câu 3:

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.

Xem đáp án » 23/07/2024 79