Mảng 2 chiều trong c++

cho mình hỏi xóa nhiều phần tử trong mảng làm sao ạ
vd: mảng:int a[]={1,2,0,0,3,0,4,0,0,0} làm sao để xóa các phần tử 0 trong mảng.

  1. Chép lại mảng, bỏ qua các phần tử thỏa điều kiện.
  2. Giờ hình dung thay vì bạn tạo mảng mới thì giờ chép đè lên mảng ban đầu :smiley:

Với STL thì nên dùng remove_if trong <algorithm>.

3 Likes

Chắc kiểu như thế này (Mình sẽ dùng mã giả vì mình không giỏi C++ và cũng để bạn tự hình dung):

# Hàm main
function main
    int a[]={1,2,0,0,3,0,4,0,0,0} # Input
    for i =0;i < len(a);i++ do
        # Nếu phần tử thứ i trong a = 0 thì bỏ phần tử đó
        if a[i] == 0 then 
            a.remove(a[i])
    end
    print a # Output ra array a
end
2 Likes

Mình làm rồi ko đc bạn ơi nếu xóa 1 phần tử thì đc còn nhiều phần tử ko đc

Xóa xong thì biến chạy vẫn đứng tại vị trí đó.
Thêm i-- vào trong if là xong.

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