C言語で配列内の重複した要素を削除する方法は何ですか?
C言語では、配列から重複する要素を削除する方法を以下に示します:
- 新しい配列を定義し、重複を取り除いた要素を保存します。
- 元の配列をすべて走査し、各要素が新しい配列にすでに存在するかどうかを判断する。
- 存在しない場合、その要素を新しい配列に追加します。
- 最終的に、新しい配列の要素は元の配列の重複を削除した結果となります。
以下はサンプルコードです。
#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です。