如何在数组中编写函数

时间:2015-12-03 21:13:33

标签: c arrays function

我是c编程的新手。我的问题是如何编写一个可以翻转我的数组的函数。 EX:输入:1,2,3,4,5输出:5,4,3,2,1

1 个答案:

答案 0 :(得分:0)

我最喜欢这样做的方法是使用指针。该过程以这样的方式工作,(对于具有已知长度的数组),您有两个指针,指向数组的任一端和临时存储值。两个指针现在开始移动,一个接一个地移动,更接近数组的中间,在每个步骤中相互交换它们的值(这是临界值所需的)。

void swap_array(int *array, int length)
{
    int temp;
    // If the array has length 1, there is nothing to swap.
    if(length > 1){
        int *swp_1 = array; // swp_1 points to the start of the array.
        int *swp_2 = array + (length - 1); // swp_2 points to the end of the array.
        // Iterate over the array, swapping the value swp_1 points to,
        // with the value swp_2 points to, before moving swp_1 one further
        // up the array, and swp_2 one down, until the "middle"-Element is reached.
        for(int i = 0; i < (length / 2); i++){
            temp = *swp_1;
            *swp_1 = *swp_2;
            *swp_2 = temp;
            swp_1++; // Point to the next element.
            swp_2--; // Point to the previous element.
        }
    }
}

有关功能参考:在您提出类似这样的问题之前,请先尝试自己动手。