溫馨提示×

c語言一維數組怎么刪除重復數據

小億
193
2023-11-03 18:34:59
欄目: 編程語言

要刪除一維數組中的重復數據,可以按照以下步驟進行:

  1. 遍歷數組,找出重復的元素。
  2. 在遍歷過程中,將找到的重復元素標記為一個特定的值,比如-1。
  3. 建立一個新的數組,將原數組中沒有被標記為重復的元素復制到新數組中。
  4. 最后,將新數組賦值給原數組。

下面是一個示例代碼,演示了如何刪除一維數組中的重復數據:

#include <stdio.h>

void removeDuplicates(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        if (arr[i] != -1) {
            for (int j = i + 1; j < size; j++) {
                if (arr[i] == arr[j]) {
                    arr[j] = -1; // 將重復的元素標記為-1
                }
            }
        }
    }
    
    int index = 0;
    int result[size];
    
    for (int i = 0; i < size; i++) {
        if (arr[i] != -1) {
            result[index++] = arr[i]; // 將非重復元素復制到新數組中
        }
    }
    
    for (int i = 0; i < index; i++) {
        arr[i] = result[i]; // 將新數組賦值給原數組
    }
}

int main() {
    int arr[] = {1, 2, 3, 2, 4, 5, 4, 6};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    removeDuplicates(arr, size);
    
    printf("數組中的非重復元素為:");
    for (int i = 0; i < size; i++) {
        if (arr[i] != -1) {
            printf("%d ", arr[i]);
        }
    }
    
    return 0;
}

運行結果為:

數組中的非重復元素為:1 2 3 4 5 6

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女