Thắc mắc về thao tác với mảng trong C#

Mọi người cho em hỏi bài này ạ.
Ở đây em tạo một lớp Mang trong lớp này có các phương thức NhapMang và XuLyMang. Code của em bị lỗi ở phương thức NhapMang, cụ thể là lúc em nhập số lượng phần tử n (dòng 30) của mảng rồi sau đó tiến hành nhập các phần tử trong mảng thì nó hiện lên lỗi:
System.IndexOutOfRangeException: Index was outside the bounds of the array.

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Gợi ý lỗi do dòng 19 và 20 nhé.
Đọc bài viết sau để hiểu thêm về giá trị mặc định khi khai báo biến.
Lần sau bạn hãy gửi code chứ không gửi ảnh lên nhé.

2 Likes

À ok. Cảm ơn bạn nhiều nhé. Lần đầu đăng bài nên chưa rõ lắm :sweat_smile:

Bạn có thể cho mình hỏi thêm xíu nữa là tại sao lúc mình sửa dòng 19 thành:
public int[] arr = new int[10];
Rồi chạy chương trình thì mình nhập n = 5. Sau đó mảng gồm các số nguyên như 1, 2, 3, 4, 5 thì nó lại hiện ra kết quả như này:


Mình cảm ơn nhiều.

Bạn khai báo mảng có 10 phần tử. Giá trị mặc định của của nó sẽ là 0. Bạn Sau đó bạn nhập vào 5 giá trị đầu tiên thì 5 giá trị đầu tiên thay đổi, 5 giá trị sau vẫn giữ nguyên mặc định.
Tại sao bạn không nhập giá trị n trước rồi mới khai báo mảng nhỉ? Vừa tránh được trường hợp thừa dữ liệu mảng không dùng như ví dụ bạn đang gặp phải, vừa tránh trường hợp không đủ không gian lưu trữ trong trường hợp bạn nhập n > 10.

3 Likes

Cảm ơn bạn nhiều.
Chỉ là mình muốn test thử coi nó sẽ xuất ra như nào nếu mình làm vậy ấy mà, tại theo mình nghĩ ban đầu là khi khai báo mảng 10 phần tử mà mình chỉ nhập 5 phần tử thì nó sẽ xuất ra 5 phần tử đầu còn 5 phần tử trống đằng sau tự khởi tạo giá trị mặc định sẽ không được xuất ra ấy. :sweat_smile:

Phần khai báo mảng có vẻ sai nhỉ?
n ở đây ban đầu bằng bao nhiêu vậy? Mảng sẽ cố định chứ không thay đổi được số lượng phần tử như List đâu (Ngoại trừ mảng của python - chắc nó là list thôi)
Trường hợp này bạn nên khai báo mảng trong hàm nhập mảng sau khi nhận được số lượng phần tử nhập vào nhé!

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