Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C xóa các số trùng lặp trong mảng

Bài toán

Người dùng nhập mảng có chứa phần tử trùng lặp. Viết chương trình xóa các phần tử trùng, chỉ giữ lại giá trị duy nhất.

Ví dụ: Input: 12, 30, 12, 45, 67, 30 → Output: 12, 30, 45, 67.

Chương trình

#include <stdio.h>
#define MAX 100

int main() {
    int array[MAX];
    int size, i, j, k;

    printf("Nhap kich thuoc mang: ");
    scanf("%d", &size);
    printf("Nhap cac phan tu: ");
    for (i = 0; i < size; i++)
        scanf("%d", &array[i]);

    // Tìm và xóa phần tử trùng
    for (i = 0; i < size; i++) {
        for (j = i + 1; j < size; j++) {
            if (array[i] == array[j]) {
                // Dịch chuyển các phần tử sau j lên một vị trí
                for (k = j; k < size; k++)
                    array[k] = array[k + 1];
                size--;   // giảm kích thước mảng
                j--;      // kiểm tra lại vị trí j sau khi dịch
            }
        }
    }

    printf("\nMang sau khi xoa trung: ");
    for (i = 0; i < size; i++)
        printf("%d\t", array[i]);
    return 0;
}

Kết quả

Nhap kich thuoc mang: 10
Nhap cac phan tu: 23 12 34 56 23 12 56 78 45 56
Mang sau khi xoa trung: 23 12 34 56 78 45