C言語で配列内の重複した要素を削除する方法は何ですか?

C言語では、配列から重複する要素を削除する方法を以下に示します:

  1. 新しい配列を定義し、重複を取り除いた要素を保存します。
  2. 元の配列をすべて走査し、各要素が新しい配列にすでに存在するかどうかを判断する。
  3. 存在しない場合、その要素を新しい配列に追加します。
  4. 最終的に、新しい配列の要素は元の配列の重複を削除した結果となります。

以下はサンプルコードです。

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int arr[MAX_SIZE] = {1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9};
    int new_arr[MAX_SIZE];
    int new_size = 0;
    
    for (int i = 0; i < MAX_SIZE; i++) {
        int is_duplicate = 0;
        
        for (int j = 0; j < new_size; j++) {
            if (arr[i] == new_arr[j]) {
                is_duplicate = 1;
                break;
            }
        }
        
        if (!is_duplicate) {
            new_arr[new_size] = arr[i];
            new_size++;
        }
    }
    
    // 打印去重后的数组
    for (int i = 0; i < new_size; i++) {
        printf("%d ", new_arr[i]);
    }
    
    return 0;
}

結果は、1、2、3、4、5、6、7、8、9です。

bannerAds