将一个数组的值按逆序重新存放。例如,原来数组的顺序为:1,2,3,4,5,要求改为5,4,3,2,1。(假设数组元素是10个)。
时间: 2023-06-11 10:06:15 浏览: 78
可以使用两个指针,一个从数组的头部开始遍历,另一个从数组的尾部开始遍历,将它们所指向的元素进行交换,直到两个指针相遇为止。
下面是一个 C++ 代码示例:
```cpp
#include <iostream>
using namespace std;
int main() {
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int start = 0, end = 9; // 定义头指针和尾指针
while (start < end) {
int temp = arr[start]; // 交换头尾指针所指向的元素
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
// 输出逆序后的数组
for (int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
输出结果为:
```
10 9 8 7 6 5 4 3 2 1
```
相关问题
将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8
要将一个数组的值按逆序重新存放,可以使用如下的代码:
```python
arr = [8, 6, 5, 4, 1]
arr.reverse()
print(arr)
```
输出结果为:[1, 4, 5, 6, 8]。
以上是Python的实现方法,其他编程语言的实现方法可能有所不同。
3. c语言:将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。
这个问题很简单,可以使用双指针来实现。我们定义两个指针i和j,分别指向数组的头和尾,然后将它们所指向的元素进行交换,i向后移动,j向前移动,直到两个指针相遇为止。这样就可以将数组按逆序重新存放了。下面是代码示例:
```c
void reverse(int* arr, int n){
int i = 0, j = n - 1;
while(i < j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
```
其中,arr是指向要逆序存放的数组的指针,n是数组的长度。
阅读全文