Vấn đề về replace value trong 1 mảng

Xin chào mọi người. Em có 1 cái đề bài như thế này : Hãy nhập một mảng, sau đó so sánh các phần tử trong mảng với 1 biến MAX tự tạo. Nếu có phần tử nào trong mảng lớn hơn biến MAX thì thay thế phần tử đó =0
Ví dụ: Biến MAX=5, mảng A{1,4,7,8} thì khi chạy sẽ hiện là A{1,4,0,0}
hàm của em như thế này

Nhưng khi chạy console ra thì lại ntn

Em nghĩ vấn đề của em có thể liên quan tới pointer, nhưng em k rõ chính xác như thế nào. Mong mọi người chỉ em ạ. Em xin cảm ơn

In ra mà linh tinh là bạn biết bạn ít nhiều bay lố giới hạn của mảng rồi đó.
In giá trị của i ra nha

Ngoài ra xem lại cái scanf đúng chưa luôn

3 Likes

em sơ ý cái scanf, em fix lại scanf rồi. Còn in ra giá trị của i là sao anh ? Tại e muốn in ra một cái mảng sau khi đã replace theo cái điều kiện cho trước

:~ Thì như trên, đọc kỹ và in ra giá trị của i xem nó trăng sao mà bị như thế.

3 Likes

Mảng bắt đầu từ i ?! :smiley: Có thể bạn chưa hiểu thấu đáo đấy.

Duyệt mảng nghĩa là truy cập vào từng phần tử a[i] của mảng, tức là i chạy từ 0 đến n-1.

1 Like

Em in i ra thì nó như vậy

tại em cũng mới bắt đầu tự học nên còn sai sót, có gì a chỉ bảo giúp em

Mảng có 4 phần tử thì i tối đa là nhiu OvO

3 Likes

Cái câu lệnh printf phải cho vô vòng lặp mới in được hết tất cả các giá trị của mảng chứ.

lệnh in a[i] của bạn để ngoài vòng lặp, lúc này i có giá trị bằng 4 sau khi ra khỏi vòng lặp mà mảng của bạn chỉ có 4 phần tử nên lỗi, compiler này dễ dãi chứ gặp visual nó sẽ báo đỏ sau khi chạy, hãy học cách debug chạy từng dòng 1 để có thể tự fix những lỗi cơ bản và cả phức tạp sau này.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?