将数组中的数逆序存放
时间: 2023-10-25 15:09:49 浏览: 39
好的,这是一个经典的数组操作问题。你可以使用双指针来实现数组中的数逆序存放,具体的做法是将数组的第一个数和最后一个数交换,将第二个数和倒数第二个数交换,以此类推,直到数组的中间位置为止。下面是使用 C++ 语言实现这个操作的代码示例:
```cpp
void reverseArray(int arr[], int n) {
int i = 0, j = n - 1;
while (i < j) {
swap(arr[i], arr[j]);
i++;
j--;
}
}
```
这个函数的参数是一个整数数组 `arr` 和数组的长度 `n`,它会将数组中的数逆序存放。在函数内部,我们使用双指针 `i` 和 `j` 来遍历数组,每次将指针所指向的数交换,直到指针相遇为止。
注意,这个函数的时间复杂度是 O(n),空间复杂度是 O(1)。
相关问题
数组中元素逆序存放c语言
以下是两种C语言中数组元素逆序存放的例子:
1. 使用for循环逆序存放数组元素
```c
#include <stdio.h>
#define N 5
int main(){
int a[N], i, temp;
printf("请输入一个数组:");
for (i = 0; i < N; i++) {
scanf_s("%d", &a[i]);
}
printf("正序存放的数组:");
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
for (i = 0; i < N / 2; i++) {
temp = a[i];
a[i] = a[N - 1 - i];
a[N - 1 - i] = temp;
}
printf("\n");
printf("逆序存放的数组:");
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
2. 使用while循环逆序存放数组元素
```c
void reverseArray(int *arr, int length) {
int left = 0;
int right = length - 1;
while (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
```
将数组中的数逆序存放不用指针
好的,我们可以使用下标的方式来操作数组进行逆序存放。具体的做法是使用一个循环,将数组中的第 i 个元素和第 n-i-1 个元素交换,其中 n 是数组的长度。下面是使用 C++ 语言实现这个操作的代码示例:
```cpp
void reverseArray(int arr[], int n) {
for (int i = 0; i < n / 2; i++) {
int temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
}
```
这个函数的参数是一个整数数组 `arr` 和数组的长度 `n`,它会将数组中的数逆序存放。在函数内部,我们使用一个循环遍历数组的前一半,每次将数组中的第 i 个元素和第 n-i-1 个元素交换,直到遍历完数组的前一半为止。
注意,这个函数的时间复杂度是 O(n),空间复杂度是 O(1)。