C言語で一次元配列の重複値を削除する方法を教えてください。
多次元配列から重複した値を削除する方法を以下に示します。
- 重複なしの要素を入れる新しい配列を定義します。
- 元の配列を反復して、配列内の各要素を新しい配列の要素と比較し、新しい配列に存在しない場合は新しい配列に追加します。
- 重複のない要素は新しい配列に保存される。
以下にサンプルコードを示します。
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int arr[MAX_SIZE], uniqueArr[MAX_SIZE];
int n, k = 0, isUnique;
printf("Enter the size of the array: ");
scanf("%d", &n);
printf("Enter the elements of the array: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Check for unique elements
for (int i = 0; i < n; i++) {
isUnique = 1;
for (int j = 0; j < k; j++) {
if (arr[i] == uniqueArr[j]) {
isUnique = 0;
break;
}
}
if (isUnique) {
uniqueArr[k++] = arr[i];
}
}
printf("Array after removing duplicates: ");
for (int i = 0; i < k; i++) {
printf("%d ", uniqueArr[i]);
}
return 0;
}
まず、配列のサイズと要素を入力します。そして配列を走査し、重複しない要素を新しい配列に保存して、新しい配列の要素を最後に結果として出力します。