Viết hàm chuẩn hóa mảng (xóa phần tử trùng lặp)

Hàm chuẩn hóa mảng, xóa các phần tử trùng ạ
Ví dụ mảng : 1 2 3 3 thì xóa sao cho mảng thành 1 2 3 ạ
mà nó bị vấn đề gì đấy, nhập mảng a bất kì vào thì lúc nào cũng chỉ còn mỗi a[0] thôi ạ

void chuanhoa( int a[], int &n)
{
    for(int i = 0 ; i < n - 1 ; i ++ )
        for( int j = 1 ; j < n ; j ++)
                if(a[i] == a[j])
                {
                        for(int k = j ; k < n-1 ; k ++)
                            a[k] = a[k+1];
                        n = n - 1;
                        j = j - 1;
                }

}

mình nghĩ chắc là vì

for( int j = 1 ; j < n ; j ++)

thay lại thành

j = i+1

thử xem

3 Likes

À đúng rồi…cảm ơn bạn nha…

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