一、利用要相互交换的元素下标和不变
#include <iostream>
using namespace std;
int main()
{
int a[5] = { 1,3,2,5,4 };
int along = sizeof(a) / sizeof(a[0]);
cout << "逆置前的数组元素为: " << endl;
for (int j = 0; j < along; j++)
{
cout << a[j] << " ";
}
cout << endl;
int i = 0, temp;
while (i<(along/2))
{
temp = a[i];
a[i] = a[ along-1-i];
a[along - 1 - i] = temp;
i++;
}
cout << "逆置后的数组元素为: " << endl;
for (int j = 0; j < along; j++)
{
cout << a[j] << " ";
}
cout << endl;
system("pause");
return 0;
}
二、利用首位下标向中间逐渐趋近
#include <iostream>
using namespace std;
int main()
{
// 创建数组
int a[5] = { 1,3,2,5,4 };
cout << "逆置前的数组元素为: " << endl;
for (int j = 0; j < sizeof(a) / sizeof(a[0]); j++)
{
cout << a[j] << " ";
}
cout << endl;
// 实现逆置
int start = 0; //起始下标
int end = sizeof(a) / sizeof(a[0])-1; //结束下标
while (start < end)
{
int temp = a[start];
a[start] = a[end];
a[end] = temp;
start++;
end--;
}
cout << "逆置后的数组元素为: " << endl;
for (int j = 0; j < sizeof(a) / sizeof(a[0]); j++)
{
cout << a[j] << " ";
}
cout << endl;
system("pause");
return 0;
}