数据交换方法来自: 不用额外空间 交换数据
代码如下:
#include <iostream>
using namespace std;
void reverse(int* arr,int n) {
for (int i = 0; i < --n; i++)
{
arr[i] = arr[i] + arr[n];
arr[n] = arr[i] - arr[n];
arr[i] = arr[i] - arr[n];
}
};
void printArray(int* arr, int n) {
cout << "Output : arr[] = {";
for (int i = 0; i < n;i++) {
if (i < n - 1) {
cout << arr[i] << ",";
}
else {
cout << arr[i];
}
}
cout << "}\n";
}
int main()
{
//int* p = new int[5]
cout << "Input arr[ ]={ } n=0"<< endl;
int* arr0 = new int[0]{ };
reverse(arr0, 0);
printArray(arr0, 0);
cout << "Input arr[ ]={1,2,3 } n=3" <<endl;
int* arr1 = new int[3] {1,2,3};
reverse(arr1, 3);
printArray(arr1, 3);
cout << "Input arr[ ]={4,5,2,1} n=4" << endl;
int* arr2 = new int[4]{ 4,5,2,1 };
reverse(arr2, 4);
printArray(arr2, 4);
return 0;
}
运行结果如下: