实现一个函数对len个元素的数组实现逆序存放
时间: 2023-12-03 10:41:55 浏览: 37
可以使用双指针来实现数组的逆序存放,具体步骤如下:
1. 定义两个指针,一个指向数组的第一个元素,另一个指向数组的最后一个元素;
2. 交换两个指针所指向的元素;
3. 指针向中间移动,重复上述步骤,直到两个指针相遇。
代码如下:
```python
def reverse_array(arr, length):
left = 0
right = length - 1
while left < right:
arr[left], arr[right] = arr[right], arr[left]
left += 1
right -= 1
```
其中,arr为待逆序存放的数组,length为数组的长度。调用该函数即可实现对数组的逆序存放。
相关问题
定义一个函数,使之实现将任一有10个元素的数组按逆序重新存放
好的,以下是 Python 的实现代码:
```python
def reverse_array(arr):
"""
将任一有10个元素的数组按逆序重新存放
:param arr: 待逆序的数组,长度为10
:return: 逆序后的数组
"""
# 确保数组长度为10
if len(arr) != 10:
return None
# 使用切片[::-1]实现逆序
return arr[::-1]
```
调用方式如下:
```python
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr_reverse = reverse_array(arr)
print(arr_reverse) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
```
希望能够帮助到你。
使用指针实现数组元素逆序存放
可以通过以下代码实现使用指针实现数组元素逆序存放:
```c
#include <stdio.h>
void reverseArray(int *arr, int len) {
int *p1 = arr;
int *p2 = arr + len - 1;
while (p1 < p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, len);
printf("\nReversed array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,我们定义了一个 `reverseArray` 函数,它接受一个整型数组和数组长度作为参数,然后使用两个指针 `p1` 和 `p2` 分别指向数组的第一个和最后一个元素。接着,我们交换 `p1` 和 `p2` 指向的值,然后将 `p1` 指针向前移动一个位置,将 `p2` 指针向后移动一个位置,直到 `p1` 指针大于等于 `p2` 指针为止。最后,我们在 `main` 函数中调用 `reverseArray` 函数并输出结果。