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を再計算します。最後に、ループを使用して、重複した値を削除した配列を出力します。

bannerAds