溫馨提示×

C語言中如何實現(xiàn)多維數(shù)組的逆序排列

小樊
83
2024-08-27 04:52:25
欄目: 編程語言

在C語言中,要實現(xiàn)多維數(shù)組的逆序排列,可以通過循環(huán)遍歷數(shù)組并交換元素的方式來實現(xiàn)。以下是一個示例,展示了如何實現(xiàn)二維數(shù)組的逆序排列:

#include<stdio.h>

void reverse_2d_array(int arr[][3], int rows, int cols) {
    for (int i = 0; i< rows / 2; i++) {
        for (int j = 0; j< cols; j++) {
            // 交換第i行和第rows-1-i行的元素
            int temp = arr[i][j];
            arr[i][j] = arr[rows - 1 - i][j];
            arr[rows - 1 - i][j] = temp;
        }
    }
}

int main() {
    int arr[][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9},
        {10, 11, 12}
    };
    int rows = sizeof(arr) / sizeof(arr[0]);
    int cols = sizeof(arr[0]) / sizeof(arr[0][0]);

    printf("原始二維數(shù)組:\n");
    for (int i = 0; i< rows; i++) {
        for (int j = 0; j< cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    reverse_2d_array(arr, rows, cols);

    printf("逆序排列后的二維數(shù)組:\n");
    for (int i = 0; i< rows; i++) {
        for (int j = 0; j< cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

這個示例中,reverse_2d_array函數(shù)接收一個二維數(shù)組、行數(shù)和列數(shù)作為參數(shù),然后通過循環(huán)遍歷數(shù)組并交換元素的方式實現(xiàn)逆序排列。在main函數(shù)中,我們定義了一個二維數(shù)組并調(diào)用reverse_2d_array函數(shù)進行逆序排列,然后輸出原始數(shù)組和逆序排列后的數(shù)組。

注意:這個示例僅適用于二維數(shù)組,對于更高維度的數(shù)組,需要使用遞歸或其他方法來實現(xiàn)逆序排列。

0