溫馨提示×

c語言數集如何進行數據過濾

小樊
109
2024-10-16 23:13:31
欄目: 編程語言

在C語言中,進行數據過濾通常涉及到數組或列表的處理,其中一些元素滿足特定的條件。以下是一個簡單的示例,展示了如何使用C語言過濾一個整數數組中的偶數:

#include <stdio.h>

// 函數聲明
int* filter_even_numbers(int* input, int size, int* output_size);

int main() {
    int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    int output_size;

    // 過濾偶數
    int* even_numbers = filter_even_numbers(numbers, size, &output_size);

    // 打印過濾后的結果
    printf("Filtered even numbers: ");
    for (int i = 0; i < output_size; i++) {
        printf("%d ", even_numbers[i]);
    }
    printf("\n");

    // 釋放動態分配的內存
    free(even_numbers);

    return 0;
}

// 函數定義:過濾偶數
int* filter_even_numbers(int* input, int size, int* output_size) {
    // 計算偶數的數量
    int even_count = 0;
    for (int i = 0; i < size; i++) {
        if (input[i] % 2 == 0) {
            even_count++;
        }
    }

    // 為輸出數組分配內存
    int* output = (int*)malloc(even_count * sizeof(int));
    if (output == NULL) {
        printf("Memory allocation failed.\n");
        exit(1);
    }

    // 將偶數復制到輸出數組中
    int index = 0;
    for (int i = 0; i < size; i++) {
        if (input[i] % 2 == 0) {
            output[index++] = input[i];
        }
    }

    // 設置輸出數組的大小
    *output_size = even_count;

    return output;
}

在這個示例中,filter_even_numbers函數接受一個整數數組、數組的大小和一個指向輸出大小的指針。它首先計算輸入數組中偶數的數量,然后為輸出數組分配足夠的內存。接下來,它遍歷輸入數組并將偶數復制到輸出數組中。最后,它設置輸出數組的大小并返回輸出數組。

main函數中,我們創建了一個包含一些整數的數組,并調用filter_even_numbers函數來過濾其中的偶數。然后,我們打印過濾后的結果,并釋放動態分配的內存。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女