01/10/2018, 14:48

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

*grab popcorn* viết 17:02 ngày 01/10/2018

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

Đỏ Mũi viết 17:02 ngày 01/10/2018

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

*grab popcorn* viết 17:04 ngày 01/10/2018

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

rogp10 viết 16:59 ngày 01/10/2018

Mảng bắt đầu từ i ?! 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.

Đỏ Mũi viết 16:50 ngày 01/10/2018

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

Đỏ Mũi viết 16:52 ngày 01/10/2018

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

*grab popcorn* viết 16:56 ngày 01/10/2018

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

Nguyễn Hoàng Trung viết 16:51 ngày 01/10/2018

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ứ.

kiencon viết 16:56 ngày 01/10/2018

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.

Bài liên quan
0