C言語で重複する値を削除して出力する方法は何ですか?
C言語では、配列とループを使用して重複した値を削除し、出力できます。
以下はサンプルコードです。
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 2, 5, 6, 4, 7, 8, 7, 9}; // 示例数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] == arr[j]) { // 如果有重复值
for (int k = j; k < n - 1; k++) { // 后面的元素往前移动
arr[k] = arr[k + 1];
}
n--; // 数组长度减1
j--; // 循环变量j减1,以便继续比较移动后的元素
}
}
}
printf("删除重复值后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
このコードを実行すると、出力結果は次の通りです。
删除重复值后的数组为:1 2 3 4 5 6 7 8 9
このコードでは、まず、サンプル配列arrが定義され、sizeof演算子を使用して配列の長さnが計算されます。次に、2重のループを使用して、配列の要素を順番に比較します。重複値が見つかった場合、後続の要素を1つ前に移動し、配列の長さnを再計算します。最後に、ループを使用して、重複した値を削除した配列を出力します。