我是c编程的新手。我的问题是如何编写一个可以翻转我的数组的函数。 EX:输入:1,2,3,4,5输出:5,4,3,2,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.
}
}
}
有关功能参考:在您提出类似这样的问题之前,请先尝试自己动手。