
Nguyên bản được gửi bởi
comeonbaby
í mình cũng đã tính làm thêm 1 mảng rồi nhưng đề bài không cho, chỉ cho phép thao tác trên 1 mảng duy nhất thôi, bạn metal_shield có thể cho mình 1 đoạn code ví dụ và giải thích cho mình đc không??? mình chưa hiểu lắm về việc dồn mảng mặc dù có coi hướng dẫn, bạn thông cảm mình hơi ngu tí^^!
//Đã sắp xếp xong mảng theo thứ tự tăng dần nhé, giả sử n là số phần tử của dãy
Code:
i = 0;
while (i<n-1){
j = i;
while (a[j] == a[i] ) j++;//Loc ra day cac phan tu bang nhau tu i den j-1
if (j-1!=i){//Dồn mảng
for (int k=j; k<n; k++)
a[i+1+k-j] = a[k];
n = n- (j-i-1);//Giảm chiều dài tối đa của mảng
}
else i++;//Duyệt phần tử tiếp theo
}
Có chú thích đầy đủ, bài toán cũng khá đơn giản chắc bạn sẽ hiểu ngay thôi.