将一个数组中的值按逆序重新存放,不能另设数组存放
时间: 2024-11-22 16:34:44 浏览: 7
将数组中的n个数按相反顺序存放。-C++程序设计(谭浩强完整版)
要将一个数组中的元素按逆序重新存放,而又不能使用额外的空间,你可以利用原地交换的方法。这种方法的基本思想是,从数组的两端开始,依次将左端的元素与右端的元素互换位置。这里有一个简单的C++示例:
```cpp
#include <iostream>
void reverseArrayInPlace(int arr[], int size) {
if (size <= 1) return; // 如果数组为空或只有一个元素,无需操作
int start = 0, end = size - 1; // 定义两个指针,start指向数组开头,end指向结尾
while (start < end) {
std::swap(arr[start], arr[end]); // 用标准库中的swap函数交换元素
start++; // 左指针向右移动一位
end--; // 右指针向左移动一位
}
}
// 示例数组
int main() {
int myArray[] = {1, 2, 3, 4, 5};
int arraySize = sizeof(myArray) / sizeof(myArray[0]);
std::cout << "Original Array: ";
for (int i : myArray) {
std::cout << i << " ";
}
reverseArrayInPlace(myArray, arraySize);
std::cout << "\nReversed Array: ";
for (int i : myArray) {
std::cout << i << " ";
}
return 0;
}
```
当你运行这个程序时,它会输出原始数组和逆序后的数组。
阅读全文