Xóa phần tử trùng lặp trong mảng trong C
Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để loại bỏ các phần tử trùng lặp trong một mảng.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
- Nhập vào một mảng số nguyên từ người dùng.
- Loại bỏ các phần tử trùng lặp trong mảng.
- In ra màn hình mảng sau khi loại bỏ các phần tử trùng lặp.
Chương trình xóa phần tử trùng lặp trong mảng trong C
Cách giải quyết bài lập trình
- Duyệt qua từng phần tử trong mảng.
- Dùng một mảng mới để lưu trữ các phần tử duy nhất.
- Nếu phần tử hiện tại chưa xuất hiện trong mảng mới, thêm phần tử đó vào mảng mới.
- Cuối cùng, mảng mới sẽ chứa các phần tử duy nhất và không có phần tử trùng lặp.
Hãy xem cách giải như sau:
#include <stdio.h> int main() { int arr[100], uniqueArr[100]; int n, i, j, isUnique; printf("Nhập số phần tử của mảng: "); scanf("%d", &n); printf("Nhập các phần tử của mảng:\n"); for (i = 0; i < n; i++) { printf("arr[%d] = ", i); scanf("%d", &arr[i]); } // Loại bỏ các phần tử trùng lặp int k = 0; // Chỉ số cho mảng mới for (i = 0; i < n; i++) { isUnique = 1; // Kiểm tra xem phần tử hiện tại đã xuất hiện trong mảng mới chưa for (j = 0; j < k; j++) { if (arr[i] == uniqueArr[j]) { isUnique = 0; // Phần tử trùng lặp break; } } // Nếu phần tử không trùng lặp, thêm vào mảng mới if (isUnique) { uniqueArr[k++] = arr[i]; } } printf("Mảng sau khi loại bỏ các phần tử trùng lặp:\n"); for (i = 0; i < k; i++) { printf("%d ", uniqueArr[i]); } printf("\n"); return 0; }
Kết quả chạy ra màn hình:
Bài viết này được đăng tại [free tuts .net]
Trên đây là cách viết một chương trình trong ngôn ngữ lập trình C để loại bỏ các phần tử trùng lặp trong một mảng. Chúc bạn thực hiện thành công!