阅读量:1
C语言递归可以用来实现数组的逆序操作。具体步骤如下:
- 定义一个递归函数,函数的参数包括数组和数组的起始位置和结束位置。
- 在递归函数中,交换起始位置和结束位置对应的元素。
- 递归地调用函数,起始位置向右移动一位,结束位置向左移动一位,直到起始位置大于等于结束位置。
- 当起始位置大于等于结束位置时,表示数组已经完成了逆序操作。
下面是一个实现数组逆序的递归函数的示例代码:
#include <stdio.h> void reverseArray(int arr[], int start, int end) { if (start >= end) { return; } // 交换起始位置和结束位置对应的元素 int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // 递归地调用函数,起始位置向右移动一位,结束位置向左移动一位 reverseArray(arr, start + 1, end - 1); } int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); printf("Original array: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } reverseArray(arr, 0, n - 1); printf("\nReversed array: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
以上代码实现了对数组{1, 2, 3, 4, 5}的逆序操作,输出结果为:
Original array: 1 2 3 4 5 Reversed array: 5 4 3 2 1